239 votes

"Ajouter la clé hôte correcte dans known_hosts" / plusieurs clés hôte SSH par nom d'hôte?

En essayant de vous connecter en ssh sur un ordinateur que je contrôle, je reçois le message familier :

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    AVERTISSEMENT : L'IDENTIFICATION DE L'HÔTE À DISTANCE A CHANGÉE !     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IL EST POSSIBLE QUE QUELQU'UN FASSE QUELQUE CHOSE DE MALVEILLANT !
Quelqu'un pourrait être en train de vous écouter en ce moment (attaque de l'homme du milieu) !
Il est également possible qu'une clé d'hôte ait été changée.
L'empreinte pour la clé RSA envoyée par l'hôte à distance est
[...].
Veuillez contacter votre administrateur système.
Ajoutez la clé d'hôte correcte dans /home/sward/.ssh/known_hosts pour vous débarrasser de ce message.
Clé RSA offensante dans /home/sward/.ssh/known_hosts:86
La clé hôte RSA pour [...] a changé et vous avez demandé une vérification stricte.
La vérification de la clé d'hôte a échoué.

En effet, j'ai bien changé la clé. Et j'ai lu plusieurs dizaines de messages indiquant que la façon de résoudre ce problème est de supprimer l'ancienne clé du fichier known_hosts.

Mais ce que j'aimerais, c'est que ssh accepte à la fois l'ancienne clé et la nouvelle clé. Le langage du message d'erreur ("Ajouter la clé d'hôte correcte") suggère qu'il devrait y avoir un moyen d'ajouter la clé d'hôte correcte sans supprimer l'ancienne.

Je n'ai pas réussi à trouver comment ajouter la nouvelle clé d'hôte sans supprimer l'ancienne.

Est-ce possible, ou le message d'erreur est-il simplement très trompeur ?

13 votes

Voici le clé hôte qui génère l'erreur. Un hôte devrait avoir une seule et unique clé. Cela n'a rien à voir avec les clés client ou utilisateur. Avez-vous une seule et même adresse IP qui flotte entre des hôtes distincts ou quelque chose d'autre?

5 votes

Dans mon cas, je sais que je vais changer souvent entre les deux clés dans un avenir proche tout en bidouillant certaines choses. Il semble que cela serait également utile dans la situation d'une seule IP avec plusieurs hôtes que vous suggérez. En gros, je veux juste savoir si c'est possible pour mon propre apprentissage, à part toute application pratique particulière.

0 votes

@DavidSchwartz +1 concernant votre commentaire - cela pourrait se produire en raison des adresses IP dynamiques dans le même réseau local (LAN)

-4voto

Anuj Rajput Points 1

Utilisez la commande sed pour supprimer la ligne offensante

OUTPUT: comme indiqué dans l'exemple ci-dessus
Clé offensante dans /home/user/.ssh/known_hosts : 86

Supprimez la ligne 86 comme mentionné dans les fichiers connus.

CODE : 
sed -i '86d' /home/user/.ssh/known_hosts

La prochaine fois que vous accéderez en utilisant ssh, le système ajoutera automatiquement une nouvelle clé.

les versions récentes de ssh

utilisez :

ssh-keygen -R 

Cela supprimera l'entrée du nom d'hôte et sauvegardera l'ancien fichier .known_host sous le nom de known_hosts.old

4 votes

"Ce que je voudrais, c'est que ssh accepte à la fois l'ancienne clé et la nouvelle clé. Votre réponse ne répond pas à cela."

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X