Jeszcze innym rozwiązaniem jest wariant @Jagadish „s odpowiedź : do strace
demona ssh.
Ma to tę istotną zaletę, że nie musimy zatrzymywać sshd, co może skutkować całkowitą blokadą, jeśli coś pójdzie nie tak.
Najpierw znajdujemy pid głównego procesu sshd. Tutaj możemy to zobaczyć wykonując pstree -pa|less
.
|-sshd,633 -D <-- THIS IS WHAT WE WANT!
| `-sshd,21973
| `-sshd,21996
| `-bash,22000
| `-screen,638 -r
Po dowiedzeniu się, że pid wynosi 633, możemy to strace
zrobić, śledząc jego dzieci:
strace -p 633 -s 4096 -f -o sux
W rezultacie wszystko, co zrobiło to sshd i jego procesy potomne, zostanie umieszczone w pliku o nazwie sux
w katalogu lokalnym.
Następnie odtwórz problem.
Będzie miał ogromną listę dzienników połączeń jądra, co jest dla nas w większości niezrozumiałe / nieistotne, ale nie wszędzie. W moim przypadku ważne było to:
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
Oznaczało to, że sshd próbował zalogować komunikat Użytkownik cica nie jest dozwolony, ponieważ konto jest zablokowane - to tylko nie mogło, ponieważ logowanie nie jest do tego wystarczające. Ale już wiemy, że klucz pub został odrzucony, ponieważ konto zostało zablokowane.
To jeszcze nie jest rozwiązanie - teraz musimy google, co w przypadku sshd oznacza „zablokowane konto”. Najprawdopodobniej będzie to trochę banalne /etc/passwd
, /etc/shadow
magiczne, ale ważna rzecz jest zrobiona - problem nie jest tajemniczy, ale łatwo można go debugować / przejrzeć w Google.