SSH - Apagando conflitos de chaves RSA no arquivo known_hosts

Publicado por Leonardo MMM em 11/12/2012

[ Hits: 46.126 ]

Blog: http://devopslab.com.br/

 


SSH - Apagando conflitos de chaves RSA no arquivo known_hosts



Sabe quando você vai se logar em algum servidor remoto e dá um conflito com a chave RSA, ou por mudança de IP, ou por alteração no hostname?

Surge um erro mais ou menos assim:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@WARNING: POSSIBLE DNS SPOOFING DETECTED!
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The authenticity of host 'servidor1 (10.10.10.173)' can't be established.
RSA key fingerprint is 43:06:d3:63:ee:4d:94:6a:ef:0d:a8:1b:9d:39:e6:ed.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'servidor1' (RSA) to the list of known hosts.
Warning: the RSA host key for 'servidor1' differs from the key for the IP address '10.10.10.173'
Offending key for IP in /home/usuario/.ssh/known_hosts:3
Are you sure you want to continue connecting (yes/no)? yes

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!


Neste caso, a chave SSH RSA está diferente, e apresenta a linha 3 como sendo a suspeita no arquivo /home/usuario/.ssh/known_hosts.

Pra você não ter que entrar com editor de texto e apagar a linha 3, basta fazer isto:

ssh-keygen -f /home/usuario/.ssh/known_hosts -R 10.10.10.173
$ ssh-keygen -f /home/usuario/.ssh/known_hosts -R servidor1


Onde as opções:
  • -f → Path do arquivo "known_hosts", que é onde ficam armazenados o hash das chaves públicas SSH dos servidores conhecidos.
  • -R → Remove o nome ou IP do servidor no arquivo known_hosts.

Ao fazer isto, sua conexão será aceita numa boa, pois não haverá mais conflito de IPs ou hostnames.

ssh usuario@servidor1
usuario@servidor1's password:
Last login: Fri Dec 7 15:51:51 2012 from 10.10.10.171
$

Obs.: Você vai usar este procedimento para evitar editar manualmente o arquivo "known_hosts".

* Mas lembre-se, isto pode ser um alerta no servidor, ele pode ter sido invadido etc. Então, creio que você, ao apagar alguma referência no "known_hosts", saiba o que está fazendo.

Outras dicas deste autor

Tomighty - Ferramenta para Técnica Pomodoro

Backup de banco de dados MySQL com mysqldump

Instalação do s3cmd - Storage S3 Amazon

Horário de verão 2012 - Debian Like e Red-Hat Like

Liberar o FTP no IPtables

Leitura recomendada

Mais um vídeo do LinuxTips: sysdig

Usando o mailx

Como ordenar arquivos por tamanho

Entendendo o comando chmod

Grep - Mostrando mais linhas no resultado de pesquisas

  

Comentários
[1] Comentário enviado por fabioeduardo em 11/12/2012 - 17:53h

Legal!!!
Eu vazia da seguinte forma;

sed -i '3d' ~/.ssh/known_hosts

Onde 3 é o numero da linha da mensagem de erro "Offending key for IP in /home/usuario/.ssh/known_hosts:3" e a letra d é para deletar.

[2] Comentário enviado por removido em 11/12/2012 - 21:28h

Eu não sei é correto fazer isso mas eu apenas removo o arquivo como o comando rm /home/usuario/.ssh/known_hosts e mando conectar novamento ele vai me pedir confirmar a chave.

[3] Comentário enviado por elgio em 12/12/2012 - 00:13h

cuidado.

não é legal ir apagando assim as chaves sem antes ter CERTEZA de que a chave mudou. Pode ser um ataque do homem do meio. oO ssh não é chato. Isto é uma proteção.

[4] Comentário enviado por cromado em 12/12/2012 - 09:31h


[2] Comentário enviado por wellingtonjoao em 11/12/2012 - 21:28h:

Eu não sei é correto fazer isso mas eu apenas removo o arquivo como o comando rm /home/usuario/.ssh/known_hosts e mando conectar novamento ele vai me pedir confirmar a chave.

Não é o correto apagar todo o arquivo, na verdade é a pior de todas as formas para se fazer isto. este arquivo é sua segurança, não pode apagar, apague apenas as linhas/servidores necessários.



[3] Comentário enviado por elgio em 12/12/2012 - 00:13h:

cuidado.

não é legal ir apagando assim as chaves sem antes ter CERTEZA de que a chave mudou. Pode ser um ataque do homem do meio. oO ssh não é chato. Isto é uma proteção.


Quem for fazer isto, tem que estar ciente disto, eu coloquei esta observação na dica.

[5] Comentário enviado por tatiaf em 01/10/2013 - 17:21h

Leonardo boa tarde!!!
Tenho tido problemas com um servidor, conectava normalmente via SSH e de uns dias para cá, apresenta o seguinte erro:
Autenticação de senha SSH falhou: Access denied. Authentication that can continue: publickey,gssapi-keyex,gssapi-with-mic,password

Após este problema, consegui remover as chaves, reiniciei o servidor e consegui um único acesso remoto, perdi a conexão e venho tendo o mesmo problema novamente.

Como posso fazer para resolver definitivamente esse conflito?

Obrigada



Contribuir com comentário