Yine bir başka seçenek de @ Jajarish'in cevabının bir çeşididir : strace
ssh daemon'a .
Önemli bir avantaja sahip, sshd'yi durdurmamız gerekmiyor, eğer bir şeyler kötüye giderse tam bir kilitlenmeye neden olabilir.
İlk olarak, ana sshd işleminin pidini bulduk. Burada bir i uygulayarak görebiliriz pstree -pa|less
.
|-sshd,633 -D <-- THIS IS WHAT WE WANT!
| `-sshd,21973
| `-sshd,21996
| `-bash,22000
| `-screen,638 -r
Bildikten sonra, ödemenin 633 strace
olduğunu, çocuklarını takip ederek yapabiliriz :
strace -p 633 -s 4096 -f -o sux
Sonuç, bu sshd'nin ve alt işlemlerinin yaptığı her şeyin sux
yerel dizinde adı geçen dosyaya bölünmesi olacaktır .
Sonra sorunu yeniden oluşturun.
Bizim için çoğunlukla anlaşılmaz / ilgisiz olan, ancak her yerde olmayan, büyük bir çekirdek çağrı günlüğü listesi olacaktır. Benim durumumda, önemli olan şuydu:
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
Bu, sshd'nin hesap kilitli olduğu için Kullanıcı cica'sına izin verilmediği mesajını kaydetmeye çalıştığı için sadece oturum açmaya çalıştı , çünkü kayıt tutma bunun için yeterli değil. Ancak zaten biliyoruz, hesap kilitli olduğundan pubkey reddedildi.
Henüz bir çözüm değil - şimdi google'a ihtiyacımız var, sshd durumunda "kilitli hesap" demek. Büyük olasılıkla önemsiz /etc/passwd
, /etc/shadow
sihirbazlık olacak, ancak önemli olan şey yapıldı - sorun gizemli değil, kolayca hata ayıklanabilir / aşındırıcı bir durumdur.