Laisser un commentaire

Résoudre l'erreur SSH : Host key verification failed

Il peut y avoir plusieurs raisons pour lesquelles ssh est confronté à un problème de vérification de l’hôte, la plupart du temps, le serveur distant a subit une modification et sa clef ne correspond plus à celle qui a été enregistrée sur votre poste. Mais le problème peut aussi venir d’un mauvais paramétrage des droits de /dev/tty.

Modification de l’hôte

En général le message de ssh ressemble à ça :

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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.

Si le serveur distant a subit une modification et que sa clef s’en trouve changée, il faut donc effacer la ligne correspondante de votre fichier ~/.ssh/known_hosts. Cela peut se faire manuellement, ou via la commande ssh-keygen :

ssh-keygen -R hostname

Il n’y a plus qu’à se reconnecter, à accepter le message disant que la clef RSA ne peut être établie, et voilà !

Problème avec /dev/tty

Ce problème là est un peu plus pernicieux, je n’y avais jamais été confronté auparavant, et j’admets avoir dû chercher un moment… Première étape, lorsque vous tentez de vous connecter en ssh, activez le mode verbeux et observez la sortie :

ssh -v login@host
[…]
debug1: read_passphrase: can't open /dev/tty: Permission denied
Host key verification failed.

Si votre commande se termine par ces deux lignes, c’est que vous avez de mauvais droits sur /dev/tty. Réglons donc ce problème avec un petit chmod :

sudo chmod 666 /dev/tty

Et voilà ! Tout devrait marcher comme sur des roulettes.

Commentaires

Rejoignez la discussion !

Vous pouvez utiliser Markdown pour les liens [ancre de lien](url), la mise en *italique* et en **gras**. Enfin pour le code, vous pouvez utiliser la syntaxe `inline` et la syntaxe bloc

```
ceci est un bloc
de code
```