Problème de connexion SSH avec " Échec de la vérification de la clé d'hôte..." erreur

Je peux me connecter à une autre machine Ubuntu sur mon réseau LOCAL via SSH. Sur les deux PC que j'ai installés openssh-serveur mais à partir d'un autre ordinateur Ubuntu, je ne peux pas me connecter à mon PC via SSH et j'ai eu cette erreur:

La vérification de la clé d'hôte a échoué...

"Échec de la vérification de la clé d'hôte" signifie que le hôte la clé de l'hôte distant a été modifiée.

SSH stocke les clés d'hôte des hôtes distants dans ~/.ssh/known_hosts. Vous pouvez soit modifier ce fichier texte manuellement et supprimer l'ancienne clé (vous pouvez voir le numéro de ligne dans le message d'erreur), soit utiliser

ssh-keygen -R hostname

De page de manuel:

- R nom d'hôte
Supprime 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 .

(ce que j'ai appris de la réponse àEst-il possible de supprimer une clé hôte particulière du fichier known_hosts de SSH?).

Si vous exécutez dans certaines situations à distance/de script où vous n'avez pas d'accès interactif à la clé d'hôte d'invite à ajouter, contournez-la comme ceci:

$ ssh -o StrictHostKeyChecking=no user@something.example.com uptime

Avertissement: Ajouté de façon permanente 'something.example.com, 10.11.12.13' (RSA) à la liste des hôtes connus.

Parfois aussi, il y a une situation lorsque vous travaillez sur la console série, puis vérifiez la commande ci-dessus en mode verbeux -v vous montrera /dev/tty n'existe pas, alors que c'est le cas.

ssh -v user@hostname

Dans le cas ci-dessus, retirez simplement /dev/tty et créer un lien symbolique de /dev/ttyS0 de /dev/tty.

rm /dev/ttyln -s /dev/ttyS0 /dev/tty

Comme alternative, ajoutez id_rsa.pub à l'emplacement distant, le mot de passe n'est donc pas invité et vous obtenez un accès de connexion.

Dans mon cas, cela a été causé par un problème udev - il n'y avait pas /dev/tty nœud de périphérique. La solution pour moi était juste:

sudo mknod -m 666 /dev/tty c 5 0

Sur le terminal:

ssh -o StrictHostKeyChecking=no -i YourPublicKey.pem user@example.com uptime

Le message suivant, ou similaire, apparaîtra:

Warning: Permanently added 'example.com, XX.XXX.XXX.XX' (ECDSA) to the list of known hosts. 00:47:37 up 3 min,  0 users,  load average: 0.00, 0.00, 0.00

Ensuite, connectez-vous à votre EC2 comme d'habitude:

ssh -i YourPublickey.pem user@example.com

Il se peut que vous ayez juste besoin d'entrer "oui" lorsque ssh confirme que vous souhaitez continuer la connexion.

Comme ci-dessous.

The authenticity of host 'xxx' can't be established.ECDSA key fingerprint is yyy.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'xxx' (ECDSA) to the list of known hosts.Enter passphrase for key '/Users/ysy/.ssh/id_rsa':

Entrez ensuite votre mot de passe.

Veuillez faire attention à "Êtes-vous sûr de vouloir continuer à vous connecter (oui/non)? Oui". Vous devez entrer oui, ne pas entrer.

vous devez mettre la clé rsa de l'hôte cible dans l'hôte source /home/user/.ssh/known_hosts en exécutant ceci sur la cible

ssh-keyscan -t rsa @targethost

Eh bien, tout simplement parce que le deuxième ubuntu nécessite une connexion par clé et non par mot de passe.

Je vous suggère d'utiliser sudo dpkg-reconfigure openssh-server sur votre PC, et cela devrait fonctionner correctement. Il réinitialisera la configuration pour openssh et devrait revenir à une authentification par mot de passe par défaut.

La deuxième possibilité est qu'il y a déjà une clé pour votre autre ubuntu dans votre PC, et qu'elle a changé donc n'est plus reconnue. Dans ce cas, vous devrez modifier le fichier .ssh/authorized_keys pour supprimer la ligne problématique identifiant votre ubuntu.

Ceci est un vieux fil et je viens de tomber sur cette réponse, je vais juste ajouter ce que j'ai fait pour résoudre ce problème.

ssh-keygen -f "/home/USER/.ssh/known_hosts" -R HOSTNAME

Je viens de regarder le message d'erreur qu'il m'a lancé et il disait d'exécuter cette commande afin de la supprimer de la liste des hôtes. Après cela, j'ai fait ce qui suit:

ssh-copy-id HOSTNAME

Ensuite, j'ai suivi les invites à partir de là jusqu'à ce que je puisse me connecter en ssh au serveur.

Vous devriez changer votre clé de cette façon:À partir de votre erreur donnée, trouvez quelle clé d'hôte a changé par exemple: Clé ECDSA offensante dans /Utilisateurs / nom d'utilisateur/.ssh / known_hosts:5 a dit que la 5ème clé a changé, alors faites ceci:

sed -i '5d' ~/.ssh/known_hosts

Remarque: vous devez être root ou avoir des privilèges pour sudo.

Utilisez-vous des noms d’hôte ou des adresses IP?

Pas similaire mais j’ai eu la même erreur mais en raison d’un problème différent: ubuntu - Managing multiple servers behind a firewall with SSH reverse tunnel - Server Fault

Ce n’est pas un problème spécifique à Ubuntu. Cela peut arriver avec n’importe quel " ssh " de la ligne de commande.