Este documento descreve as causas e a solução para o erro "error: Unable to load host key: /etc/ssh/ssh_host_rsa_key" ao conectar-se a uma instância Linux via SSH.
Sintomas
Não é possível conectar-se a uma instância Linux via SSH. Ao fazer login na instância usando Virtual Network Computing (VNC) e executar o comando cat /var/log/secure ou cat /var/log/messages para verifique os logs, o sistema exibe uma mensagem de erro semelhante à seguinte.
error: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
error: @ WARNING: UNPROTECTED PRIVATE KEY FILE! @
error: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
error: Permissions 0777 for '/etc/ssh/ssh_host_rsa_key' are too open.
error: It is required that your private key files are NOT accessible by others.
error: This private key will be ignored.
error: Unable to load host key "/etc/ssh/ssh_host_rsa_key": bad permissions
error: Unable to load host key: /etc/ssh/ssh_host_rsa_key
error: Unable to load host key "/etc/ssh/ssh_host_rsa_key": invalid format
error: Unable to load host key "/etc/ssh/ssh_host_rsa_key": invalid format
error: Unable to load host key: /etc/ssh/ssh_host_rsa_key
error: Unable to load host key "/etc/ssh/ssh_host_ecdsa_key": invalid format
error: Unable to load host key "/etc/ssh/ssh_host_ecdsa_key": invalid format
error: Unable to load host key: /etc/ssh/ssh_host_ecdsa_key
Causas
Esse problema ocorre quando o daemon sshd não consegue carregar a chave de host SSH porque os arquivos de chave na instância são inválidos. As causas comuns incluem:
-
Permissões incorretas nos arquivos de chave de host SSH.
Por exemplo, a permissão padrão para um arquivo de chave privada é
600. Se você defina um valor mais permissivo, como777, outros usuários poderão ler ou modifique o arquivo. O serviço SSH considera isso um risco de segurança e ignora a chave, o que causa a falha na conexão. Arquivos de chave de host SSH corrompidos, excluídos ou adulterados.
Solução
Para resolver esse problema, regenere os arquivos de chave de host SSH.
-
Conecte-se à instância Linux usando VNC.
Para mais informações, consulte Visão geral dos métodos de conexão.
-
Regenere os arquivos de chave de host.
sudo rm -f /etc/ssh/ssh_host_* sudo /usr/bin/ssh-keygen -A sudo chmod 600 /etc/ssh/ssh_host_* sudo chmod 644 /etc/ssh/*.pub -
Execute o comando a seguir para verifique se os arquivos de chave foram gerados.
ls -l /etc/ssh
-
Reinicie o serviço SSH.
sudo systemctl restart sshd.service
Próximas etapas
Após regenerar a chave de host, você pode encontrar o seguinte erro ao se conectar à instância via SSH. Esse erro ocorre porque sua máquina local armazenou em cache a impressão digital da chave de host antiga. Para resolver esse problema, consulte O que devo fazer se o erro "Host key verification failed" for retornado ao usar SSH para conectar-me a uma instância Linux?.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
ae:6e:68:4c:97:a6:91:81:11:38:8d:64:ff:92:13:50.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:70
RSA host key for x.x.x.x has changed and you have requested strict checking.
Host key verification failed.