Acesso SSH em Host no qual teve sua identificação alterada - "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!"

Publicado por Gabriel Fernandes em 05/08/2011

[ Hits: 28.902 ]

Blog: http://cd2.com.br

 


Acesso SSH em Host no qual teve sua identificação alterada - "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!"



Ao acessar um Host remoto usando SSH no console do Linux, o computador origem tenta verificar a autenticidade do Host remoto que queremos conectar no arquivo ~/.ssh/known_hosts e caso ela existir e estiver válida, imediatamente é solicitada a senha e o acesso é estabelecido.

Quando é a primeira vez em que acessamos este Host remoto, o programa SSH procura no arquivo ~/.ssh/known_hosts se há uma chave RSA associada ao IP do Host remoto, como é o primeiro acesso ela não existirá e o usuário será avisado que não foi possível checar a autenticidade do Host remoto e exibirá a chave RSA dele, além de solicitar ao usuário uma confirmação para acessá-lo.

Abaixo podemos ver um exemplo desta mensagem:

$ ssh root@192.168.12.136
The authenticity of host '192.168.12.136 (192.168.12.136)' can't be established.
RSA key fingerprint is 27:68:b4:54:3d:98:0f:ab:83:c5:94:9e:b1:f4:2a:d7.
Are you sure you want to continue connecting (yes/no)?

Neste momento, você concorda digitando "yes" e estabelece o acesso ou "no" para não conectar.

Respondendo "yes" o programa ssh irá gravar no arquivo ~/.ssh/known_hosts a chave ssh- rsa correspondente a este Host remoto, para que não seja mais solicitado esta confirmação na próxima vez em que efetuar um acesso por SSH neste mesmo Host.

Caso o Host remoto seja trocado e você tentar realizar um acesso por SSH a partir do mesmo computador origem, esta chave não será mais validada, então uma mensagem, como esta a seguir, deve ser exibida indicando que a chave existente no arquivo para o IP deste Host remoto não confere com a chave RSA dele atual.

Observe a mensagem:

$ ssh root@192.168.12.136
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@
@ 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
27:68:b4:54:3d:98:0f:ab:83:c5:94:9e:b1:f4:2a:d7.
Please contact your system administrator.
Add correct host key in /home/gabriel/.ssh/known_hosts to get rid of this message.
Offending key in /home/gabriel/.ssh/known_hosts:44
RSA host key for 192.168.12.136 has changed and you have requested strict checking.
Host key verification failed.

Para resolver isto é simples, pois apenas precisamos remover do .ssh/known_hosts a linha com o IP do Host remoto que queremos acessar.

Muito usuários excluem todo o arquivo .ssh/known_hosts, o que não é um boa prática, pois implica em regerar todas as chaves novamente para todos os Hosts que já acessamos e responder "yes" novamente para todas eles, entretanto há uma saída simples e rápida que podemos usar na própria linha de comando.

Podemos usar um pequeno comando sed e imediatamente voltaremos a acessar aquele Host remoto, sem perder qualquer chave de outros Hosts que já estão no .ssh/known_hosts.

O comando é este que segue, para usar no seu computador, altere apenas o número do IP para o do Host remoto:

sed -i '/192.168.12.136/d' .ssh/known_hosts

Pronto, agora podemos gravar uma nova chave para este Host remoto e voltar a acessá-lo normalmente, sem perder qualquer informação dos outros Hosts que já acessamos.

Boa sorte!

Outras dicas deste autor

Permissão de acesso à dispositivos USB no Oracle Virtual Box

Habilitando X11 via SSH no Slackware

Habilitando VNC como módulo do X11

Converter disco virtual VMDK para VDI em 3 passos

Driver Atheros AR8132M para Linux CentOS 5

Leitura recomendada

Restringindo acesso do "root" ao SSH

Correção de segurança no quotacheck em rc.M

Bloquear Facebook HTTPS liberando apenas alguns usuários

Liberar Panda Cloud no Squid

Criando um bridge com MasterShaper (Firewall + QoS)

  

Comentários
[1] Comentário enviado por padulas em 07/11/2012 - 18:36h

Obrigado pela dica meu amigo, eu estou pegando o jeito do pinguim rs. Viva a Liberdade, viva o mundo GNU/Linux.

[2] Comentário enviado por nayamonia em 08/11/2012 - 13:25h

Valeu pelo retorno.

Gabriel Fernandes
http://cd2.com.br
http://ameliapos.com

[3] Comentário enviado por pexessj em 07/12/2012 - 10:49h

Olá Gabriel, temos outra forma de remover apenas a linha referente ao IP que desejamos remover do arquivo. O comando é:

# ssh-keygen -f "/home/USUARIO/.ssh/known_hosts" -R ENDEREÇO_IP

Espero ter ajudado.

Um abraço

Att.

Matheus

[4] Comentário enviado por MauroFontoura em 22/05/2013 - 13:45h

Usei e funcionou exclui a linha com o ip que eu queria usando o vi.
Valeu

[5] Comentário enviado por rengaf1 em 19/06/2013 - 21:43h

valeu gabriel

a dica do pexessi tambem funciona direitinho. valeu!!!

vlw!

[6] Comentário enviado por nayamonia em 24/06/2013 - 18:38h

vlw galera.

Gabriel

[7] Comentário enviado por jarvis em 24/07/2014 - 15:35h

Meu irmão, muito obrigado.

[8] Comentário enviado por nayamonia em 25/07/2014 - 12:10h

Obrigado por comentar.

Att. Gabriel
http://cd2.com.br



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts