Outra opção é uma variante do 's @Jagadish resposta : para strace
o daemon ssh.
Tem a vantagem significativa de não precisarmos parar o sshd, o que pode resultar em um bloqueio completo se algo der errado.
Primeiro, encontramos o pid do processo principal do sshd. Aqui podemos ver executando um pstree -pa|less
.
|-sshd,633 -D <-- THIS IS WHAT WE WANT!
| `-sshd,21973
| `-sshd,21996
| `-bash,22000
| `-screen,638 -r
Depois de saber que o pid é 633, podemos strace
, seguindo seus filhos:
strace -p 633 -s 4096 -f -o sux
O resultado será que tudo o que esse sshd e seus processos filhos fizeram será rastreado no arquivo nomeado sux
no diretório local.
Em seguida, reproduza o problema.
Ele terá uma lista enorme de registros de chamadas do kernel, o que é incompreensível / irrelevante para nós, mas não em todos os lugares. No meu caso, o importante era isso:
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
Isso significava que o sshd tentou registrar a mensagem User cica não permitida porque a conta está bloqueada - apenas não pôde, porque o log não é suficiente para isso. Mas já sabemos, a pubkey foi rejeitada porque a conta estava bloqueada.
Ainda não é uma solução - agora precisamos pesquisar no Google, o que significa uma "conta bloqueada" no caso do sshd. Provavelmente será um truque trivial /etc/passwd
, /etc/shadow
mas o importante é feito - o problema não é misterioso, mas facilmente debugável / googlável.