Bagaimana cara memeriksa log sshd?

126

Saya sudah menginstal Ubuntu 9.10 sshddan saya berhasil menghubungkannya menggunakan login dan kata sandi. Saya telah mengonfigurasi RSAlogin kunci dan sekarang "Server menolak kunci kami" seperti yang diharapkan. Ok, sekarang saya ingin memeriksa sshdlog untuk mencari tahu masalah. Saya sudah memeriksa /etc/ssh/sshd_configdan sudah

SyslogFacility AUTH
LogLevel INFO

Baik. Saya melihat /var/log/auth.logdan ... itu kosong O_O. Mengubah Logleveluntuk VERBOSEtidak membantu - auth.logmasih kosong. Adakah petunjuk bagaimana saya dapat memeriksa sshdlog?

grigoryvp
sumber
7
Apakah Anda memeriksa konfigurasi syslog Anda? Saya tidak menjalankan Ubuntu, tetapi mungkin mengarahkan fasilitas AUTH ke file log yang berbeda. Mungkin / var / log / pesan?
Prof. Moriarty
Bagaimana cara memeriksa konfigurasi syslog? Sayangnya, saya tidak terlalu bagus linux :(. Tidak cat /var/log/messages | grep sshmenunjukkan apa-apa :(.
grigoryvp
Anda benar. /etc/syslog.confmengalihkan AUTH ke /var/logauth.log. Silakan tulis jawaban Anda sehingga saya bisa menerimanya :)
grigoryvp
3
Di server saya, sshd log ke / var / log / secure. Ini dikonfigurasikan di /etc/rsyslog.conf, di baris awal "authpriv. *"
Isaac Betesh
1
authpriv ?? Bagaimana mungkin kita tahu bahwa ada hubungannya dengan sshd? :-)
Spencer Williams

Jawaban:

7

Jika tidak ada orang lain yang menggunakan sistem saat ini Anda dapat melakukan apa yang telah saya lakukan dalam kasus-kasus seperti ini:

  • hentikan layanan sshd (setidaknya saya sudah bisa melakukan ini saat masuk melalui ssh)
  • mulai sshd secara manual dan tambahkan beberapa opsi -d untuk mendapatkan lebih banyak keluaran debug verbose. Kecuali Anda memiliki sesuatu yang funky terjadi itu harus menggunakan tombol yang sama dan konfigurasikan itu ketika mulai dengan benar
Peto
sumber
143
Menghentikan SSHD di server jauh adalah ide yang sangat buruk. Ini dapat memecahkan masalah untuk sebagian (atau sebagian besar) pengaturan sebagian besar waktu, tetapi jika APA saja yang salah - koneksi Anda, nyalakan kedua ujungnya, pelupa, dll - Anda terkunci di luar kotak. Itu berita buruk.
Tiba
1
Yah, harus dicatat bahwa satu-satunya cara Anda dapat memulai layanan setelah menghentikannya secara manual adalah memiliki beberapa jenis akses ke sana, seperti koneksi jarak jauh non-SSH, atau Anda duduk di depannya.
Spencer Williams
26
Bagaimana ini menjawab pertanyaan? Saya mendarat di sini dari pencarian web yang mengharapkan untuk mempelajari cara memeriksa file log SSHD, bukan yang bekerja untuk Anda untuk beberapa masalah ... Sialan saya berharap pembaca di jaringan Stack Exchange benar-benar membaca dan menjawab pertanyaan yang ada, dan tidak pertanyaan yang mereka inginkan ....
4
Anda dapat memulai sshd lain di port lain. Hubungkan ke yang itu. Kemudian hentikan sshd utama dan mulai yang baru di port 22. Jika ada yang gagal, reboot kotak menggunakan DRAC atau manajemen cloud Anda. Anda harus memiliki sshd mulai saat boot kan? Jangan khawatir.
Bruno Bronosky
1
@JoelESalas Komunitas tidak memutuskan jawaban mana yang diterima.
kasperd
155

Membuat jawaban berdasarkan komentar di atas, beri kredit ke @Prof. Moriarty dan @Eye of Hell

Kegagalan SSH otomatis dicatat di sini /var/log/auth.log

Yang berikut ini harus memberi Anda hanya baris log terkait ssh

grep 'sshd' /var/log/auth.log

Untuk berada di sisi yang aman, dapatkan beberapa ratus baris terakhir dan kemudian cari (karena jika file log terlalu besar, grep pada keseluruhan file akan mengkonsumsi lebih banyak sumber daya sistem, belum lagi akan memakan waktu lebih lama untuk dijalankan)

tail -500 /var/log/auth.log | grep 'sshd'

Ram
sumber
8
Jawaban ini. Jawaban lain dengan panah hijau adalah palsu. Ubah panah.
meshfields
5
Mengapa tidak menggunakannya tail -f ...untuk memonitornya secara langsung? Apakah ini akan menjadi masalah dengan file log yang lebih besar?
ingh.am
6
less +F ...akan 'berbuntut' secara real time, dan itu jauh lebih kuat dari pada ekor
northben
5
Dan lnavbahkan lebih baik daripada kurang / ekor
Wayne Werner
7
Ps: jika server Anda adalah Red Hat (sebagai CentOS), jalur sshd / login catatan log adalah / var / log / secure (periksa / var / log folder untuk file log dari tanggal tertentu juga). Lihat jawaban ini: serverfault.com/questions/465833/…
Brian Hellekin
15

Jika Anda dapat mencoba koneksi gagal lagi dengan mudah, salah satu cara mudah adalah dengan memulai server SSH pada port gratis seperti 2222:

/usr/sbin/sshd -d -p 2222

dan coba lagi koneksi dengan:

ssh -p 2222 user@host

Dengan menggunakan port yang berbeda -p 2222, kita tidak harus menghentikan server SSH utama, yang bisa mengunci kita.

Lihat juga: https://unix.stackexchange.com/a/55481/32558

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
sumber
1
Salah satu opsi terbaik, khususnya jika Anda hanya memiliki akses SSH ke server. Men-debug koneksi dengan menghentikan server ssh akan membuat Anda keluar dari sesi. Mulai saja daemon ssh baru pada port yang berbeda dan uji login menggunakan port itu.
Attila Antal
1

Jika Anda ingin melihat semua pesan log tentang sshd, jalankan ini:

grep -rsh sshd /var/log |sort
tamu
sumber
2
Log akan mulai dengan entri seperti Mar 14 19:52:04yang mengecualikan tahun dan tidak mudah disortir (meskipun Anda mungkin beruntung dengan sort --month-sortasumsi Anda tidak melewati batas antara tahun). File log itu sendiri sudah diurutkan, jadi Anda hanya perlu memindai dengan urutan yang benar. Selain itu, grep -rpanggilan rekursif akan sangat lambat pada sistem dengan log besar. Selain itu tidak ada alasan untuk memindai hal-hal seperti log HTTPD Anda.
Adam Katz
1

Kamu bisa tail -f /var/log/auth.log

Aditya Mittal
sumber
1
Selamat datang di ServerFault. Apakah Anda membaca pertanyaannya? Dia tidak mendapatkan data di file itu. tailtidak berguna jika tidak memiliki data di dalamnya.
anak ayam
@cicks Itu lucu. Jawaban dengan suara terbanyak hampir sama seperti ini ..
Qback