Namun pilihan lain adalah varian dari jawaban @Jadish : untuk strace
daemon ssh.
Ini memiliki keuntungan yang signifikan, bahwa kita tidak perlu menghentikan sshd, apa yang dapat menghasilkan penguncian lengkap jika sesuatu berjalan buruk.
Pertama, kami menemukan pid dari proses sshd utama. Di sini kita dapat melihatnya dengan menjalankan a pstree -pa|less
.
|-sshd,633 -D <-- THIS IS WHAT WE WANT!
| `-sshd,21973
| `-sshd,21996
| `-bash,22000
| `-screen,638 -r
Setelah tahu, bahwa pid itu 633, kita bisa strace
, mengikuti anak-anaknya:
strace -p 633 -s 4096 -f -o sux
Hasilnya adalah segala yang dilakukan sshd ini, dan proses turunannya, akan di-strace ke dalam file yang bernama sux
di direktori lokal.
Kemudian mereproduksi masalahnya.
Ini akan memiliki daftar log panggilan kernel yang besar, yang sebagian besar tidak dapat dipahami / tidak relevan bagi kita, tetapi tidak di mana-mana. Dalam kasus saya, yang penting adalah ini:
6834 sendto(4, "<38>Jan 15 18:49:21 sshd[6834]: User cica not allowed because account is locked\0", 84, MSG_NOSIGNAL, NULL, 0) = 84
Itu berarti, bahwa sshd mencoba mencatat pesan User cica tidak diizinkan karena akun terkunci - itu hanya tidak bisa, karena logging tidak cukup verbose untuk itu. Tapi kita sudah tahu, pubkey ditolak karena akunnya dikunci.
Ini belum merupakan solusi - sekarang kita perlu google, apa artinya "akun terkunci" dalam kasus sshd. Ini kemungkinan besar adalah hal sepele /etc/passwd
, /etc/shadow
sihir, tetapi yang penting dilakukan - masalahnya bukan yang misterius, tetapi yang mudah diperdebatkan / googlable.