ssh “AVISO: A IDENTIFICAÇÃO DO HOST REMOTO FOI MUDADA!”

5

Estou usando o ssh para fazer login em um servidor remoto que alugo há vários anos. Na semana passada recebi uma mensagem dizendo que eles atualizaram minha conta e meu servidor. Agora quando eu vou logar, eu recebo esta mensagem do ssh

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for mydomain.com has changed,
and the key for the corresponding IP address X.X.X.X
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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
XXxXXXXXXX
Please contact your system administrator.
Add correct host key in /home/myaccount/.ssh/known_hosts to get rid of this message.
Offending key in /home/myaccount/.ssh/known_hosts:7
RSA host key for mydomain.com has changed and you have requested strict checking.
Host key verification failed.

Agora, presumo que isso tenha sido acionado pelo meu host ao atualizar meu servidor. Então, eu quero confiar neste site novamente. Mas eu não consigo ver como.

Eu olhei em known_hosts e todos lá são chaves públicas. Mas não posso dizer qual deles vem da versão antiga desse servidor em particular. Nem sei como obter uma chave correta para o host; Na vez anterior em que fiz contato, acho que o ssh acabou de confirmar comigo e salvou-o automaticamente. Agora diz que solicitei uma verificação rigorosa, mas não tenho ideia de quando fiz isso ou onde redefini-la.

    
por interstar 19.01.2010 / 21:07

3 respostas

9

A linha:

Offending key in /home/myaccount/.ssh/known_hosts:7

indica que a chave antiga está na linha 7 do seu arquivo known_hosts. Use o seu editor favorito para deletar a linha 7. Isso deve fazer isso desaparecer.

Você também pode usar ssh-keygen -R para remover uma entrada:

# ssh-keygen -R hostname -f ~/.ssh/known_hosts

FYI, essas não são chaves públicas, mas uma representação em hash dos hosts.

Você pode listar o arquivo de hosts conhecidos com:

$ ssh-keygen -lv -f ~/.ssh/known_hosts

Ele exibirá a representação da chave e da arte ascii:

2048 0f:3b:8a:02:75:f1:68:0f:32:8a:7a:0f:ef:69:f8:a0 |1|aa3F96t0nzhqLpt+lJx4msNAGQI=|740B4+NTrQhAx/DWXHf6QLrBpz8= (RSA)
+--[ RSA 2048]----+
|                 |
|  .              |
|   =             |
|o * .            |
|o= o    S        |
|+   .    +       |
|..o.    o .      |
|..++.o . .       |
|E. *B .          |
+-----------------+

Em teoria, você imprime isso e o mantém em um local seguro. Quando algo suspeito acontece, você tem uma cópia para referência.

    
por 19.01.2010 / 21:15
5

Vou apenas adicionar isso antes de seguir o conselho de meus estimados companheiros de servidor e apagar a linha de seu arquivo known_hosts, você deve falar com o serviço ao cliente do outro lado e ter certeza de que eles fizeram algo que teria causou esta mudança de chave.

    
por 19.01.2010 / 22:04
2

Você precisará editar seu arquivo /home/myaccount/.ssh/known_hosts e remover a entrada correspondente ao endereço IP ou ao nome do host do seu servidor antigo. Depois, você deve apenas fazer o ssh para o seu servidor como você faz normalmente e ele irá solicitar uma nova chave e perguntar se você deseja adicioná-la. Simplesmente diga 'sim' e pronto! :) Ele não deve perguntar de novo a menos que algo tenha mudado.

Espero que ajude.

EDIT: sua entrada known_hosts provavelmente seria algo como isto

[hostname ou endereço IP] [keytype, geralmente ssh-rsa] [chave aqui, ou seja, ASDFJAKj3klje35u9086095468kjflADf ...]

    
por 19.01.2010 / 21:14

Tags