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.857 ]

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

10 passos para criar máquina virtual no VirtualBox na linha de comando

Recuperando / corrigindo erros em partição / (raiz) em LVM - Fedora Core 5

Habilitando VNC como módulo do X11

Erro "unknown filesystem type 'LVM2_member'" - como montar LVM sem alterar configurações no HD convidado

Driver Realtek RTL8111B / RTL8168B para Linux CentOS 5

Leitura recomendada

BIND seguro

KeePassX - Proteção para suas senhas

Série de Webinars - Auditoria de Segurança em Aplicações WEB

Utilizar apenas Firefox no Squid

Auditando com Snoopy

  

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