Le mois dernier, j’ai décidé de mettre à niveau le serveur où Our Code World est actuellement hébergé pour un serveur véritablement meilleur. Comme je le fais toujours, j’ai acquis le nouveau serveur et commencé à le configurer afin de migrer les données de l’ancien serveur. Au bout d’un moment, je suis allé dans le panneau d’administration du serveur sur leur site web pour supprimer l’ancien fichier de clé racine et j’ai remarqué que le centre de données où le serveur était situé n’était pas en Amérique, mais en France. Le centre de données choisi était erroné, j’ai donc demandé un nouveau serveur en Amérique. Après le déploiement, j’ai installé le nouveau système d’exploitation, mais j’ai installé la mauvaise version d’Ubuntu (16 au lieu de 18.04), donc j’ai effacé une fois de plus le serveurð¤£. Après avoir vérifié finalement que tout ce que j’ai installé la bonne version d’Ubuntu, j’ai essayé d’accéder au serveur via SSH, pour ma surprise encore une fois, je me suis retrouvé avec une autre erreur:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 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 isXX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XXPlease 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:5RSA host key for :22 has changed and you have requested strict checking.Host key verification failed.
Le problème est causé parce que vous vous connectez à un serveur où vous étiez précédemment connecté, mais dont l’hôte RSA a changé depuis la dernière fois que vous vous êtes connecté à lui (je me suis connecté à la première version du serveur avec Ubuntu 16.04 et puis j’ai essayé de me connecter au même serveur avec Ubuntu 18.04 et l’exception est apparue). Afin d’éviter toute faille de sécurité, vous devrez supprimer cette clé du fichier known_hosts
de votre machine locale afin de pouvoir vous connecter correctement.
A. Supprimer manuellement la clé incriminée
Bien, supprimer le fichier known_hosts est une solution valable tant que vous ne vous souciez pas de devoir confirmer à chaque fois que vous vous connectez à un quelconque serveur que l’empreinte digitale est valide, donc ne supprimez pas le fichier known_hosts
. La solution la plus simple est de supprimer simplement la ligne avec le problème sur le fichier, dans notre cas, le message d’exception nous a avertis que la clé offensante est dans la ligne #5:
Add correct host key in /root/.ssh/known_hosts to get rid of this message.Offending key in /root/.ssh/known_hosts:5
Donc vous auriez seulement besoin soit de supprimer la ligne, en utilisant une seule commande comme ceci (remplacer 5 avec le numéro de votre ligne):
sed -i '5d' ~/.ssh/known_hosts
Et c’est tout. Alternativement, modifiez le fichier known_hosts
en utilisant un éditeur de terminal comme nano ou vim et supprimez la ligne par vous-même.
B. Utiliser ssh-agent
Alternativement, vous pouvez utiliser l’outil ssh-keygen pour simplement supprimer la clé incriminée si vous connaissez le nom d’hôte/ip :
ssh-keygen -R <SERVER_IP_OR_HOSTNAME> -f ~/.ssh/known_hosts
Cela devrait également fonctionner pour supprimer l’avertissement qui apparaît dans le terminal.
Happy coding ❤️!