Apakah mungkin untuk mengetahui kunci ssh mana yang digunakan untuk mengakses akun? Saya memiliki akun di server yang saya biarkan beberapa orang (tepercaya!) Memiliki akses melalui ssh. Saya merasa bermanfaat untuk mengetahui siapa yang masuk dan kapan. Saya memiliki akses root sehingga saya dapat melihat log, tetapi tampaknya tidak ada apa pun di sana. Apakah ada beberapa saklar konfigurasi yang akan menempatkan beberapa cara untuk mengidentifikasi kunci dalam log?
ssh
logs
authentication
Loop Space
sumber
sumber
Jawaban:
Jika Anda masuk ke file konfigurasi sshd (biasanya
/etc/ssh/sshd_config
) dan ubah arahan LogLevel menjadi VERBOSE:... Anda dapat melihat sesuatu seperti ini di log:
Dari
man sshd_config
:sumber
sed -ne "/sshd.$PPID.:.*matching DSA key/{s/^.* //g;p;q}" /var/log/auth.log
sed
!q
direktif, toko online sampai akhir file ... sed baris menjadi:sed -ne "/sshd.$PPID.:.*matching DSA key/{s/^.* //g;h};\${x;p}" /var/log/auth.log
. Definitif: I Love sed!Agak mirip dengan jawaban @ user37161 . Jika akun bersama menjalankan shell khusus dan shell perlu tahu pengguna apa yang ada di sana, maka menjalankan skrip "wrapper" mungkin tidak cukup, karena informasi di sana tidak diteruskan ke shell kustom kecuali melalui metode yang dapat menyebabkan ras kondisi.
Alih-alih, Anda dapat menggunakan
environment=
opsi dalam file otor_keys untuk mengatur variabel lingkungan, yang dapat dibaca oleh shell kustom.Di dalam
.ssh/authorized_keys
file Anda , tambahkan setiap baris dengan set variabel lingkungan, seperti berikut:Kemudian shell kustom, atau berbagai skrip rc, dapat membaca
$REMOTEUSER
variabel dan mengambil tindakan yang sesuai.Namun, perhatikan bahwa jika Anda menggunakan shell standar, maka pengguna yang masuk dapat memodifikasi file untuk menggagalkan berbagai hal. Juga, ada beberapa risiko dalam mengizinkan pengguna untuk mengatur variabel lingkungan seperti
LDPRELOAD
. Lihatsshd_config
dokumentasi tentangPermitUserEnvironment
.sumber
Tingkatkan 2016-10-31 tentang format log
Beberapa skrip untuk pemasangan yang benar
Ada metode yang dapat digunakan penuh untuk melacak / mencatat koneksi ssh dengan kunci dengan pengeluaran untuk nama pengguna.
pengantar
Sebagai tambahan dari @Caleb, saya ingin membagikan beberapa trik kecil di sana:
Nota: Saya sedang mengerjakan Debian 6.0 .
Instalasi server
Tingkat Log SSHD
Pertama memastikan bahwa konfigurasi server memiliki tingkat pencatatan yang memadai:
sebagai root, ini akan mengatur dan mengaktifkan loggin verbose:
Dapat ditulis:
atau dalam skrip sed :
Yang bisa dijalankan sebagai:
Daripada mengaktifkan ini:
Syslog: membuat sidik jari pengguna dapat dibaca
Sekarang ambil sidik jari dalam file yang dapat dibaca pengguna:
Coba (kembali) login dari ssh untuk memastikan file baru
sshdusers.log
dibuat (dan mengandung sesuatu), laluPemakaian
Ini akan mencetak sidik jari sesi saat ini:
Pengaya untuk
.bashrc
Dan akhirnya, ada sedikit tambahan untuk diletakkan di akhir
/etc/bash.bashrc
pengguna atau Anda.bashrc
:jadi setelah masuk kembali dari SSH, Anda akan melihat:
Nota Pada beberapa instalasi, file kunci yang diotorisasi mungkin bernama berbeda, seperti
$HOME/.ssh/authorized_keys2
...sumber
file
untuk mengetahui jenis file. Tapi untuk manusia yang isi filesystem, memiliki ekstensi seperti.pl
,.py
,.sh
,.awk
,.sed
,.tar.gz
, atau bahkan.png.b64.gz
berguna!Misalkan pengguna "joe" dan "deb" memiliki akses ke akun "x". Kemudian di akun x
.ssh_authorized_keys
Anda menambahkan baris:Juga dalam skrip pembungkus Anda dapat melakukan apa pun yang Anda inginkan, mencatat kunci pribadi joe telah digunakan
ssh
pada tanggal & waktu tertentu dengan perintah$ORIGINAL_COMMAND
.sumber
Pada fedora 20+ upaya login dan keberhasilan disimpan di /var/log/audit/audit.log. Log ini menyimpan upaya login (kegagalan dan keberhasilan), dan sidik jari kunci yang digunakan untuk upaya login disimpan di bidang bernama fp.
Anda dapat membandingkan sidik jari kunci masuk dengan sidik jari di otor_keys dengan menjalankannya baris demi baris melalui ssh-keygen -l
Penjelasan terperinci sehubungan dengan ssh login dan keamanan serta deteksi intrusi ada di sini: http://vpathak.tumblr.com/post/121343814158/fedora-audit-log-with-love-from-russia
sumber
Anda dapat mencoba ini:
sumber
ssh-add -L | awk 'NR==FNR { k=$2;next } /^#/{next} $2==k { print $3;exit} $3==k {print $4;exit} ' - ~/.ssh/authorized_keys
Selain @F. Hauri menjawab, saya menyiapkan berguna "LoggedIn prompt".
Satu file tambahan adalah opsional ($ HOME / .ssh / pengguna):
Bagian ini harus ditempelkan ke
/etc/profile
(untuk semua pengguna) atau ke~/.bashrc
Hasil
sumber