Warning: remote host identification has changed!
Lorsque l'on réinstalle un serveur Linux et que l'on établit une nouvelle connexion SSH vers celui-ci, on se retrouve souvent avec ce message d'erreur : Warning: remote host identification has changed ! Cela signifie que vos clefs SSH ont changé.
$ ssh user@serveur
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
48:95:46:71:ab:c8:e8:2d:99:48:15:33:ad:ae:8f:6f.
Please contact your system administrator.
Add correct host key in /home/pti-seb/.ssh/known_hosts to get rid of this message.
Offending key in /home/pti-seb/.ssh/known_hosts:6
RSA host key for serveur.fr has changed and you have requested strict checking.
Host key verification failed.
Pour résoudre ce problème, il faut mettre à jour votre fichier known_hosts. Vous pouvez le faire automatiquement avec cette ligne de commande :
ssh-keygen -R adresse-ip-du-serveur
Voici un exemple d'utilisation :
$ ssh-keygen -R mon_serveur
/home/pti-seb/.ssh/known_hosts updated.
Original contents retained as /home/pti-seb/.ssh/known_hosts.old
Attention : si jamais vous n'avez pas réinstallé votre serveur ou changé quoique ce soit au niveau d'OpenSSH, ce message est sans aucun doute révélateur d'un attaque de type Man in the Middle sur votre réseau.
15 Commentaires pour "Warning: remote host identification has changed!"
Flux des commentaires de cet article Ajouter un commentaireEt pour une machine qui est assez souvent réinstallée, on peut modifier ~/.ssh/config en conséquence:
=)
Très bonne astuce même si pour ma part je fait un vim ~/.ssh/known_hosts
.
De même, une suppression direct de la ligne et c'est fini =)
Mais cette solution n'est pas plus mal.
Notez que cette manip (ssh-keygen -R mon_serveur) s'affiche depuis Ubuntu Natty.
Pour ma part, avant je fais un vim ~/.ssh/known_hosts +n° de la ligne indiqué puis un dd une fois le fichier ouvert, et naturellement un :wq pour enregistrer la modif et quitter.
Moi perso j'utilise nano ~/.ssh/known_hosts et je supprime la dernière ligne du fichier vue que j'ai qu'un serveur, et j'ai pas de souci
@totof : dans ce cas, le plus rapide pour toi c'est carrément un rm -f ~/.ssh/known_hosts
@Gardouille : sympa ton fichier de conf
Merci
bonnes remarques dans cet article. Un complément ici.
bonne lecture
Moi aussi j'ai l'habitude de faire une édition du fichier ~/.ssh/known_hosts et supprimer la ligne en question. Mais quand tu gère beaucoup de serveur, le fichier peut faire plus de 100 lignes et là, la commande ssh-keygen permet de gagner du temps.
Faut juste l'apprendre par cœur après.
Il y a une autre solution aussi : juste avant de réinstaller la machine, il faut sauvegarder la signature ssh du serveur dans /etc/ssh et le remettre une fois que la réinstall a été faite.
@crash : sed -i 'line d' ~/.ssh/known_hosts
Mais c'est vrai qu'ubuntu donne directement la commande. Le plus propre restant bien sûr de sauvegarder/restaurer sa conf ssh.
@rouc1 : dans /etc/ssh, il faut sauvegarder quel fichier exactement ?
@pti-seb :
Il me semble que ce sont les fichiers ssh_host_dsa_key, ssh_host_dsa_key.pub, ssh_host_rsa_key, ssh_host_rsa_key.pub .
Tu peux d'ailleurs vérifier que la ligne dans le known_hosts pour un host donné est le contenu d'un des 2 fichiers .pub (qui correspond à la clé publique de ce host).
J'ai rencontré le même message d'erreur en me connectant en ssh sur une raspi
avec la cmd : $ ssh-keygen -R l'adresse_de_mon-hote
Puis ssh pi@l'adresse_de_mon-hote j'obtiens ce message d'erreur
The authenticity of host 'l'adresse_de_mon-hote' can't be established.
ECDSA key fingerprint is SHA256:......
quelqu'un peut-il m'aider merci
Merci