Corriger un fichier .ssh/knownhosts
Lorsque l’on réinstalle un PC, il est impossible de se connecter via SSH
sur celui ci. Ce problème est du à la signature de la machine distante
qui a été enregistrée dans le fichier $HOME/.ssh/known_hosts
de la
machine source.
Pour corriger cette situation, la solution la plus simple est de
supprimer le fichier known_hosts
comme expliqué dans cet
article,
il sera re-créé à la première utilisation de SSH. Seulement, cette
correction a pour effet de devoir valider à nouveau tous les accès sur
les différentes machine.
Pour éviter de devoir valider tous les accès, il faut éditer le fichier
known_hosts
et corriger son contenu.
Cette correction a été testé sur un poste fonctionnant avec Ubuntu
9.10 Karmic Kaola.
La correction s’applique également pour d’autres distributions
GNU/Linux puisque le fonctionnement de ssh est identique sur
toutes les distributions.
Lors d’une connexion sur une VM ayant l’adresse 192.168.0.13, j’obtiens le message d’erreur suivant :
yvon@nanda:~$ ssh -XC yvon@192.168.0.13
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
ef:ae:59:a0:a5:dc:9b:78:65:a7:e1:ae:7c:42:e2:68.
Please contact your system administrator.
Add correct host key in /home/yvon/.ssh/known_hosts to get rid of this message.
Offending key in /home/yvon/.ssh/known_hosts:8
RSA host key for 192.168.0.13 has changed and you have requested strict checking.
Host key verification failed.
Dans ce message, il y a une ligne qui donne la référence du poste dans
le fichier known_hosts
:
Offending key in /home/yvon/.ssh/known_hosts:8
Dans ce message, c’est le poste N° 8 du fichier known_hosts
qui a
changé de signature et qui est injoignable. Pour corriger cette erreur,
il faut éditer le fichier et supprimer la ligne 8.
Pour ceux qui utilise vi, il faut donc utiliser les commandes :
-
cd \$HOME/.ssh
pour se placer dans le dossier de configuration de ssh de l’utilisateur -
vi known_hosts
pour ouvrir le fichier en édition -
:8
pour se placer sur la 8ieme ligne -
dd
pour supprimer la ligne -
:wq
pour sauvegarder et fermer le fichier
Il est également possible de faire cette correction avec une seule ligne de commande, en utilisant l’éditeur sed :
sed -i 8d $HOME/.ssh/known_hosts