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:
-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.
[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?