J'ai reçu ce message aujourd'hui en essayant de me connecter à mon serveur. Que devrais-je faire? Que se passe-t-il?
$ ssh 10.10.10.69
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
3d:1b:02:9e:b2:b8:f0:f7:c6:4f:94:96:f6:e3:c0:d1.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:8
RSA host key for 10.10.10.69 has changed and you have requested strict checking.Host key verification failed.
Réponses:
Avez-vous récemment réinstallé le système d'exploitation sur votre serveur ou quelque chose comme ça? Cela provoquerait cela.
Pour résoudre ce problème: http://www.cyberciti.biz/faq/warning-remote-host-identification-has-changed-error-and-solution/
Solution n ° 1: supprimer des clés à l'aide de ssh-keygen
Utilisez l'
-R
option pour supprimer toutes les clés appartenant au nom d'hôte d'un fichier known_hosts. Cette option est utile pour supprimer les hôtes hachés. Si votre nom d'hôte distant est server.example.com, entrez:Maintenant, vous pouvez vous connecter à l'hôte sans problème.
Solution n ° 2: ajoutez la clé d'hôte correcte dans
/home/user/.ssh/known_hosts
Il n'est pas nécessaire de supprimer l'intégralité du fichier known_hosts, juste la ligne incriminée dans ce fichier. Par exemple, si vous avez 3 serveurs comme suit.
Pour supprimer le 2ème serveur (myserver.com), ouvrez le fichier:
Et appuyez sur la commande dd pour supprimer la ligne. Enregistrez et fermez le fichier. Ou utilisez suivant
Allez maintenant à la ligne # 2, tapez la commande suivante
Maintenant, supprimez la ligne avec dd et quittez:
Ou vous pouvez utiliser la commande sed comme suit pour supprimer la clé incriminée à la ligne 44:
Solution 3: supprimez simplement le fichier known_hosts Si vous n'avez qu'un seul serveur ssh
Essayez de vous connecter à nouveau avec ssh
Vous devriez maintenant pouvoir connecter votre serveur via ssh:
Ensuite, vous obtiendrez une nouvelle invite pour ajouter la clé
~/.ssh/known_hosts
comme suit:la source
D'après ce que je peux dire, toutes ces réponses visent à supprimer l'avertissement, au lieu de le traiter. En bref, l'avertissement vous indique que le serveur ne ressemble plus à ce qu'il était; voir https://en.wikipedia.org/wiki/Man_in_the_middle_attack pour savoir pourquoi cela peut être un danger.
Lisez
man ssh
, en particulier cette section:Pour être sûr, vous (ou quelqu'un de confiance) devez d'abord exécuter cette commande sur le serveur auquel vous vous connectez. Cela vous donnera une empreinte digitale ressemblant à celle donnée dans l'avertissement de la question. Bien sûr, souvent, vous ne disposez pas de ces informations, mais si vous avez des raisons de soupçonner que quelque chose se passe, l'exécution de cette commande est le moyen de vérifier si la signature du serveur a vraiment changé ou s'il peut y avoir quelque chose de suspect.
la source
ssh -o FingerprintHash=md5 example.org
J'ai rencontré le même problème et si vous ne souhaitez pas supprimer l'intégralité du
known_hosts
fichier, vous pouvez exécuter la commande suivante:ssh-keygen -R 10.10.10.69
Il n'y a aucun problème avec la suppression des hôtes connus. Vous n'aurez qu'à ajouter chaque serveur auquel vous vous connectez, à la liste chaque fois que vous vous connectez à eux. Pourrait aussi bousiller vos scripts, car les hôtes ne sont pas encore fiables. L'alerte se produit lorsque la signature de l'hôte (l'ordinateur auquel vous essayez de vous connecter à de nouvelles clés générées, généralement en raison d'une réinstallation ou d'une rotation de clé.)
la source
Si vous pensez qu'avertir un faux positif, vous pouvez supprimer vos / root / ssh / known_hosts pour démarrer une nouvelle vérification.
la source
Si vous avez récemment réinstallé le serveur ou changé la clé d'hôte, il est probablement sûr de supprimer la ligne 8 de votre fichier ~ / .ssh / known_hosts et de rajouter le serveur (en y accédant et en répondant "oui "lorsqu'il demande une vérification des clés)
la source
Comme votre serveur est sur un réseau local, vous pouvez être assez confiant.
Si vous avez réinstallé votre système, c'est normal, mais au lieu de supprimer votre fichier known_hosts, je vous recommande de faire
echo "" > ~/.ssh/known_hosts
la source
ssh -q fait aussi cette astuce.
la source
Copiez cette ligne, mais entrez le nom d'utilisateur et le nom d'hôte / IP pour
user
etremote-server
:Par exemple:
Et collez-le sur votre terminal local et exécutez-le. Cela a fonctionné pour moi.
la source
Sur le nœud client où vous émettez le ssh,
Supprimez toutes les lignes commençant par des adresses IP qui se trouvent sur le même réseau que l'adresse IP dans laquelle vous essayez de ssh. Cela forcera le nœud client à ajouter de manière permanente (ECDSA) à la liste des hôtes connus.
la source