SSH - Apagando conflitos de chaves RSA no arquivo known_hosts
Dica publicada em Linux / Comandos
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:
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:
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.
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.
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.