Еще одним вариантом является вариант @Jagadish «s ответ : к strace
SSH - демон.
Это имеет существенное преимущество: нам не нужно останавливать sshd, что может привести к полной блокировке, если что-то пойдет не так.
Сначала мы находим pid основного процесса sshd. Здесь мы можем увидеть его выполнение pstree -pa|less
.
|-sshd,633 -D <-- THIS IS WHAT WE WANT!
| `-sshd,21973
| `-sshd,21996
| `-bash,22000
| `-screen,638 -r
Узнав, что pid - 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, не разрешенное, потому что учетная запись заблокирована - он только не смог, потому что для этого недостаточно подробного ведения журнала. Но мы уже знаем, что pubkey был отклонен, потому что аккаунт был заблокирован.
Это еще не решение - теперь нам нужно гуглить, что означает «заблокированный аккаунт» в случае с sshd. Это будет , скорее всего , некоторое тривиальное /etc/passwd
, /etc/shadow
колдовство, но главное сделано - проблема не загадочная, но легко отладка / googlable один.