Faz sentido fornecer mais algumas informações sobre as configurações em /etc/ssh/sshd_config
, em particular StrictModes
( grep StrictModes /etc/ssh/sshd_config
). StrictModes
é a configuração que determina o quanto o sshd
reage às permissões de arquivo e pasta de cada usuário ~/.ssh
e ~/.ssh/authorized_keys
.
Você também não nos forneceu a configuração de AuthorizedKeysFile
em seu sshd_config
. Muito relevante, se o seu servidor SSH estiver procurando pelo arquivo em algum lugar diferente do que você o colocou.
Mas, além das respostas até agora, pode haver uma infinidade de razões para isso. O problema é que, mesmo que você tenha tentado, não há informações suficientes para adivinhar o que está errado.
Mais uma coisa pode ser restrições do PAM ( UsePAM
in sshd_config
). O Ubuntu costumava ter isso em algum momento. Se a conta de usuário não tiver um conjunto de senhas (autenticação somente de chave pública), isso não será permitido.
Mas deixe-me dar um método genérico para depurar esses problemas.
Solução de problemas genérica de sshd
O que eu acho geralmente muito útil em tais casos é iniciar sshd
sem deixar que ele seja daemonize ("entrar em segundo plano e desconectar do terminal"). Frequentemente, os logs não serão muito úteis, especialmente quando você tem um erro de configuração (o que não é o caso óbvio, pelo menos).
Você começa do terminal assim:
# $(which sshd) -Ddp 10222
Isto lhe dará uma grande quantidade de resultados de depuração que de outra forma não apareceriam (sem o -d
) ou terminariam nos registros se você tiver sorte.
NB: o $(which sshd)
é o melhor método para satisfazer o requisito sshd
de um caminho absoluto. Caso contrário, você receberá o seguinte erro: sshd re-exec requires execution with an absolute path
. O -p 10222
faz com que sshd
ouça nessa porta alternativa, sobrescrevendo o arquivo de configuração - isso é para que ele não entre em conflito com as instâncias sshd
potencialmente em execução. Certifique-se de escolher uma porta livre aqui.
Esse método me ajudou muitas vezes a encontrar problemas, seja problemas de autenticação, problemas de desempenho ou outros tipos de problemas. Para obter uma saída realmente detalhada para stdout
, use $(which sshd) -Ddddp 10222
(observe o dd
adicionado para aumentar a verbosidade). Para mais bondade de depuração, verifique man sshd
.
No lado do cliente ssh
pode levar -v
(até -vvv
) para ser realmente detalhado sobre o que está fazendo.
A linha de log
... ubuntu sshd[8476]: User root not allowed because account is locked
sugere que, sendo esse o problema, execute:
sudo passwd -u root