SSH - Apagando conflitos de chaves RSA no arquivo known_hosts

Publicado por Leonardo Macedo Cerqueira em 11/12/2012

[ Hits: 44.977 ]

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

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

Instalação do plugin Java no Google Chrome

Backup de banco de dados MySQL com mysqldump

Squid: Bloquear MSN de forma transparente

Como alterar a base de dados padrão do MySQL

Leitura recomendada

Macete para busca reversa de comandos

Listando pacotes instalados com dpkg

Localizar arquivos ou diretórios no Linux

Como criar disco de boot com o Grub com apenas 1 comando

Compactação de arquivos PDF com GhostScript

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts