Que comando para limpar o erro de “REMOTE HOST IDENTIFICATION HAS CHANGED!”

2
ssh  -p  yyyy  root@xxxxxxxxx
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Offending ECDSA key in /home/debian8/.ssh/known_hosts:28
  remove with: ssh-keygen -f "/home/user/.ssh/known_hosts" -R [xxxx]:yyyy
ECDSA host key for [xxxxxxxx]:yyyy has changed and you have requested strict checking.
Host key verification failed.

Fazendo como aviso, diga.

$ ssh-keygen -f "/home/user/.ssh/known_hosts" -R [xxxx]:yyyy

/home/user/.ssh/known_hosts is not a valid known_hosts file.    
Not replacing existing known_hosts file because of errors  

Qual comando executar agora?

    
por scrapy 09.10.2017 / 13:09

4 respostas

4

Se tiver certeza de que apenas a chave está incorreta e você optar por removê-la.

Lista de soluções alternativas:

1.- Execute o comando recomendado.

O comando a ser executado está bem na mensagem de erro:

$ ssh-keygen -f "/home/user/.ssh/known_hosts" -R [xxxx]:yyyy

substituir

  • xxxx pelo nome do host ou IP usado em conexão com o ssh
  • yyyy pelo número da porta (se não for padrão)

Isso removerá a chave com falha e, em seguida, apenas se reconectará para obter a nova chave no arquivo.

2.- Remover linha 28 do arquivo

O erro também indica que a linha com falha é:

Offending ECDSA key in /home/debian8/.ssh/known_hosts:28

A linha numerada 28, que pode ser removida com um editor de texto ou com:

sed -i '28d' "/home/user/.ssh/known_hosts"

volte a ligar para obter a chave correta.

3.- Mova o arquivo.

Mova o arquivo para um backup (para futura referência / uso / extração de chaves)

mv /home/user/.ssh/known_hosts /home/user/.ssh/known_hosts_backup

deixe o ssh reconstruir o arquivo à medida que cada novo host for contatado.

4.- Apague o arquivo inteiro

Se todos os itens acima falharem, apague todo o arquivo

rm "/home/user/.ssh/known_hosts"

ele será reconstruído para cada novo host ao qual você se reconectará.

    
por 09.10.2017 / 13:15
1

A mensagem de erro "/home/user/.ssh/known_hosts não é um arquivo válido de known_hosts." mostra o problema. ssh-keygen não consegue analisar o arquivo porque ele foi corrompido, provavelmente por edição manual incorreta.

Se você não tiver um backup recente, a solução mais fácil seria remover o known_hosts corrompido e permitir que ssh gere um novo. Você terá que aceitar novamente as chaves de qualquer host remoto que você tenha aceitado anteriormente.

$ mv /home/user/.ssh/known_hosts /home/user/.ssh/known_hosts.old
    
por 09.10.2017 / 13:22
0

Você usa o hashing do nome do host? Caso contrário, você pode usar um editor de texto para remover a linha correspondente em /home/user/.ssh/known_hosts , começando com o nome do host. Deve parecer um pouco assim:

hostname-or-ip ecdsa-sha2-nistp256 AAAA...

(para outros leitores interessados, o ecdsa bits também pode ser ssh-rsa , mas aqui, é explicitamente reclamando uma chave ECDSA.)

    
por 09.10.2017 / 13:16
0

O aviso SSH significa que a chave pública do host remoto xxxxxxxxx foi alterada. Isso se deve ao fato de o administrador do host remoto ter alterado a chave pública ou a um intruso que executou um ataque man-in-the-middle entre sua máquina e o host remoto.

Se você tiver certeza absoluta de que é o primeiro caso, remova a chave inválida armazenada em cache de .ssh/known_hosts editando o arquivo e removendo a linha que começa com o nome do host remoto.

    
por 09.10.2017 / 13:21

Tags