Recebi esta mensagem hoje ao tentar fazer login no meu servidor. O que devo fazer? O que está acontecendo?
$ ssh 10.10.10.69
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
3d:1b:02:9e:b2:b8:f0:f7:c6:4f:94:96:f6:e3:c0:d1.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:8
RSA host key for 10.10.10.69 has changed and you have requested strict checking.Host key verification failed.
Respostas:
Você reinstalou recentemente o sistema operacional no seu servidor ou algo assim? Isso causaria isso.
Para corrigir isso: http://www.cyberciti.biz/faq/warning-remote-host-identification-has-changed-error-and-solution/
Solução 1: remova chaves usando ssh-keygen
Use a
-R
opção para remover todas as chaves pertencentes ao nome do host de um arquivo known_hosts. Esta opção é útil para excluir hosts com hash. Se o seu nome de host remoto for server.example.com, digite:Agora, você pode se conectar ao host sem problemas.
Solução 2: adicione a chave do host correta
/home/user/.ssh/known_hosts
Não é necessário excluir o arquivo known_hosts inteiro, apenas a linha incorreta nesse arquivo. Por exemplo, se você tiver 3 servidores, a seguir.
Para excluir o segundo servidor (myserver.com), abra o arquivo:
E pressione o comando dd para excluir a linha. Salve e feche o arquivo. Ou use o seguinte
Agora vá para a linha 2, digite o seguinte comando
Agora exclua a linha com dd e saia:
Ou você pode usar o comando sed da seguinte maneira para excluir a chave incorreta na linha # 44:
Solução 3: Apenas exclua o arquivo known_hosts Se você tiver apenas um servidor ssh
Tente conectar-se ao ssh novamente
Agora você deve conseguir conectar seu servidor via ssh:
Em seguida, você receberá um novo prompt para adicionar a chave da
~/.ssh/known_hosts
seguinte maneira:fonte
Pelo que sei, todas essas respostas são sobre suprimir o aviso, em vez de lidar com ele. Em resumo, o aviso está dizendo que o servidor não parece mais o que era; consulte https://en.wikipedia.org/wiki/Man_in_the_middle_attack para saber por que isso pode ser um perigo.
Leia
man ssh
, especialmente esta seção:Para estar do lado seguro, você (ou alguém em quem confia) deve executar esse comando primeiro no servidor ao qual está se conectando. Ele fornecerá uma impressão digital parecida com a fornecida no aviso da pergunta. Obviamente, muitas vezes você não tem essas informações, mas se tiver motivos para suspeitar que algo está acontecendo, executar esse comando é a maneira de verificar se a assinatura do servidor realmente mudou ou se há algo suspeito acontecendo.
fonte
ssh -o FingerprintHash=md5 example.org
Eu enfrentei o mesmo problema e, se você não deseja excluir o
known_hosts
arquivo inteiro , poderá executar o seguinte comando:ssh-keygen -R 10.10.10.69
Não há problema em excluir os known_hosts. Você só precisará adicionar cada servidor ao qual se conectar, à lista sempre que se conectar a eles. Também pode estragar seus scripts, porque os hosts ainda não são confiáveis. O alerta ocorre quando a assinatura do host (o computador que você está tentando conectar para gerar novas chaves, geralmente devido a uma reinstalação ou rotação de chaves).
fonte
Se você acredita que esse aviso é falso positivo, é possível excluir seu / root / ssh / known_hosts para iniciar uma nova verificação.
fonte
Se você reinstalou recentemente o servidor ou alterou a chave do host, provavelmente é seguro remover a linha 8 do seu arquivo ~ / .ssh / known_hosts e adicionar novamente o servidor (adicionando ssh'ing a ele e respondendo "yes "quando solicita a verificação da chave)
fonte
Como seu servidor está em uma rede local, você pode estar bastante confiante.
Se você reinstalou o sistema, isso é normal, mas em vez de remover o arquivo known_hosts, recomendo que você faça
echo "" > ~/.ssh/known_hosts
fonte
O ssh -q também faz esse truque.
fonte
Copie esta linha, mas insira o nome de usuário e o nome do host / IP para
user
eremote-server
:Por exemplo:
E cole-o no seu terminal local e execute-o. Isso funcionou para mim.
fonte
No nó do cliente em que você está emitindo o ssh,
Exclua todas as linhas que começam com endereços IP que estão na mesma rede que o IP no qual você está tentando conectar. Isso forçará o nó do cliente a adicionar permanentemente (ECDSA) à lista de hosts conhecidos.
fonte