Ще одним варіантом є варіант @Jagadish «s відповідь : до strace
SSH - демон.
Це має значну перевагу в тому, що нам не потрібно зупиняти sshd, що може призвести до повного блокування, якщо щось піде погано.
Спочатку ми знаходимо pid основного процесу sshd. Тут ми можемо побачити це, виконавши a pstree -pa|less
.
|-sshd,633 -D <-- THIS IS WHAT WE WANT!
| `-sshd,21973
| `-sshd,21996
| `-bash,22000
| `-screen,638 -r
Дізнавшись, що під 633, ми можемо strace
його, слідкуючи за його дітьми:
strace -p 633 -s 4096 -f -o sux
Результатом буде те, що все, що зробив цей sshd, і його дочірні процеси, будуть розміщені у файлі, названому sux
в локальному каталозі.
Потім відтворіть проблему.
У ній буде масивний список журналу викликів ядра, який для нас здебільшого незрозумілий / не має значення, але не скрізь. У моєму випадку важливим було таке:
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
Одним чином, sshd намагався реєструвати повідомлення User cica не дозволений, оскільки обліковий запис заблоковано - він лише не зміг, оскільки для цього журнал недостатньо багатослівний. Але ми вже знаємо, що в пабкі відхилено, оскільки обліковий запис був заблокований.
Це ще не рішення - тепер нам потрібно google, що означає "заблокований обліковий запис" у випадку sshd. Це буде, швидше за все, якась тривіальна /etc/passwd
, /etc/shadow
майстерність, але важливо зробити - проблема не таємнича, а легко відладжувальна / googlable.