Voici la solution pour le problème “authenticity of host ‘example.com can’t be established” ou “Host key verification failed” lors d’une session SSH sous Linux, MacOS ou Windows.
J’ai récemment travaillé sur un site WordPress multisite hébergé sur WPEngine. Lorsque j’ai voulu me connecter au site en SSH, j’ai reçu une drôle d’erreur:
The authenticity of host 'example.ssh.wpengine.net (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is SHA256:T8IoIg6/q7i3pVfZipYtxow4.
This host key is known by the following other names/addresses:
~/.ssh/known_hosts:38: 1.ssh.wpengine.net
~/.ssh/known_hosts:42: 2.ssh.wpengine.net
~/.ssh/known_hosts:47: 3.ssh.wpengine.net
~/.ssh/known_hosts:52: 4.ssh.wpengine.net
~/.ssh/known_hosts:54: 5.ssh.wpengine.net
~/.ssh/known_hosts:56: 6.ssh.wpengine.net
~/.ssh/known_hosts:76: 7.ssh.wpengine.net
(2 additional names omitted)
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Host key verification failed.
Code language: PHP (php)
Comme vous pouvez le voir, il y a déjà pas mal de domaines connus dans mon trousseau SSH, qui appartiennent à ssh.wpengine.net
.
Pour une raison obscure toutefois, le nouveau sous-domaine n’est pas admis, contrairement aux sous-domaines précédents qui n’avaient posé aucun problème.
Solution: ajouter la clé au trousseau manuellement
Si la clé ne peut être ajoutée automatiquement, ajoutons-la manuellement et tentons de nous connecter.
Concrétement, il faut donc insérer la clé RSA du serveur dans le fichier /home/user/.ssh/known_hosts
de la machine qui se connecte en SSH au serveur distant.
Nous pouvons faire cela en une seule commande:
ssh-keyscan -t rsa example.ssh.wpengine.net >> ~/.ssh/known_hosts
# example.ssh.wpengine.net:22 SSH-2.0-Go
Code language: PHP (php)
Voici ce que fait la commande:
ssh-keyscan -t rsa SSH.EXAMPLE.COM
: cela récupère la clé RSA de l’hôteSSH.EXAMPLE.COM
>> ~/.ssh/known_hosts
: cela copie la clé et l’insère dans le répertoire.ssh
du dossier personnel de notre utilisateur, à la fin du fichierknown_hosts
qui contient tous les hôtes et clés RSA pour SSH.
Retentons maintenant de nous connecter au site WPEngine en SSH:
ssh example@example.ssh.wpengine.net
___ _________ __________ _____
__ | / /__ __ \ ___ ____/_____________ ___(_)___________
__ | /| / /__ /_/ / __ __/ __ __ \_ __ `/_ /__ __ \ _ \
__ |/ |/ / _ ____/ _ /___ _ / / / /_/ /_ / _ / / / __/
____/|__/ /_/ /_____/ /_/ /_/_\__, / /_/ /_/ /_/\___/
/____/
WP Engine Shell - PHP 8.0
Code language: JavaScript (javascript)
Et voilà, la connexion SSH est de nouveau opérationnelle!
Vous voulez un site WordPress ou WooCommerce qui soit à la fois rapide et performant? Vous êtes au bon endroit.