245 votes

Supprimer la clé de known_hosts

J'ai construit plusieurs machines virtuelles au cours des dernières semaines. Le problème est que les .ssh/known_hosts me donne le L'homme au milieu avertissement. Cela se produit parce qu'une autre empreinte digitale est associée à l'IP de la machine virtuelle.

Dans le .ssh/known_hosts Cependant, je ne trouve pas l'enregistrement lié à l'IP, seulement deux chaînes bizarres, semblables à des clés, et "ssh-rsa".

Est-ce que quelqu'un a une idée sur la façon d'enlever l'ancienne clé de l'ordinateur ? known_hosts ?

10 votes

Les "chaînes bizarres, semblables à des clés" auxquelles vous faites référence sont les adresses IP/hôtes hachées. Il s'agit d'une fonctionnalité de sécurité qui permet d'empêcher un intrus de savoir à quels systèmes vous avez accès. Si vous voyez cela, c'est que votre ssh_config a été modifié. HashKnownHosts yes set.

1 votes

Si vous avez l'impression que le contenu du fichier est trop confus, vous avez probablement activé le retour à la ligne. Désactivez-la. Toutes les lignes commencent par un nom d'hôte ou une adresse IP.

20voto

jms Points 318

L'avertissement vous indiquera la ligne exacte dans le fichier des hôtes connus.

Voici un exemple :

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for foo-bar.net has changed,
and the key for the corresponding IP address 127.0.0.1
is unchanged. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
Offending key for IP in /home/user/.ssh/known_hosts:6
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Voir le /home/user/.ssh/known_hosts:6 partie ? Elle précise le numéro de fichier et de ligne.

10voto

rouble Points 674

Vous pouvez également demander à ssh de ne pas vérifier le fichier known_hosts en utilisant les drapeaux UserKnownHostsFile et StrictHostKeyChecking.

Par exemple :

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@example.com

Pour faciliter l'utilisation, vous pouvez utiliser un alias :

alias boldssh='ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'

Maintenant, vous pouvez simplement utiliser boldssh lorsque vous êtes sûr de faire confiance au certificat du serveur.

11 votes

Quelle idée horrible. Désactiver de façon permanente une couche de sécurité juste parce que vous êtes trop paresseux pour garder votre ~/.ssh/known_hosts à jour ? Pourquoi ne pas aller de l'avant et utiliser telnet ? "Si vous n'êtes jamais sûr, alors vous n'avez aucune idée de ce qu'est une attaque MITM et vous devriez probablement passer du temps à lire de bons ouvrages.

3 votes

Sur la base de la question de l'OP, je pense que c'est une réponse valable. Parfois, vous avez un système de test sur lequel vous créez/détruisez un grand nombre de VM. (C'est ce que je fais actuellement dans le cadre de ma préparation à l'examen RHCE.) Il se peut qu'il n'y ait pas d'implications en matière de sécurité. Bien que noter les implications en matière de sécurité soit une excellente chose, je ne pense pas que cela doive être étiqueté comme une "idée horrible".

0 votes

2voto

kenorb Points 22006

Voici une méthode utilisant l'éditeur Ex :

ex +6d -scwq ~/.ssh/known_hosts

où 6 est votre numéro de ligne mentionné dans le message d'avertissement. Comme celui-ci :

Clé offensante pour IP dans /home/user/.ssh/known_hosts:6 <== NUMÉRO DE LIGNE


En général, il est conseillé d'utiliser ex a modifier les fichiers de manière non interactive au lieu de sed qui est plutôt un S tream ED itor et son -i qui est une extension non standard de FreeBSD.

0voto

Nate Kohari Points 1748

L'entrée pour le nom d'hôte ou l'ip doit être dans la première colonne. L'avertissement doit également indiquer le numéro de la ligne où se trouve la clé incriminée.

0voto

Ryan Griggs Points 784

Il s'agit d'un fichier texte. Vous pouvez facilement l'éditer avec vi(m) et simplement supprimer la ligne en question (dd), et enregistrer le fichier (wq). Mais s'il existe une commande spécifique pour supprimer un hôte, c'est probablement la méthode la plus sûre.

0 votes

Je ne vois pas en quoi éditer le fichier directement dans VIM est "dangereux". C'est en fonction de votre niveau de confort avec VIM. En particulier avec ce fichier, le plus grand risque que vous avez est de supprimer trop de clés, auquel cas vous serez à nouveau invité à le faire.

0 votes

La "sécurité" à laquelle je faisais référence concerne 1) l'oubli/la méconnaissance de la suppression des informations dépendantes dans d'autres fichiers (s'il y en a) et 2) la suppression accidentelle de plus ou moins de données que nécessaire, ce qui brise le fichier.

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