Une connexion Internet sécurisée n’est pas seulement l’idéal, elle est essentielle. En fait, nous irons jusqu’à dire que c’est la priorité numéro un pour votre site web. L’erreur « Warning: Remote Host Identification Has Changed » protège votre connexion de certaines attaques malveillantes, même si dans certains cas, vous pouvez aussi provoquer cette erreur par inadvertance.

L’erreur est liée à vos clés Secure Shell (SSH) et à « l’empreinte digitale » du serveur qu’un client vérifiera. Si Secure Shell pense qu’il y a un problème, il bloque l’accès à votre serveur et envoie une erreur. Mais vous pouvez résoudre ce problème en quelques étapes.

Au cours des prochaines minutes, nous allons vous montrer comment réparer l’erreur « Warning: Remote Host Identification Has Changed » pour Windows et Mac. Mais d’abord, nous allons vous donner quelques détails sur le message d’erreur lui-même.

Ce qu’est l’erreur « Warning: Remote Host Identification Has Changed »

L’un des moyens les plus sûrs de se connecter à un serveur Web est d’utiliser SSH. C’est un outil en ligne de commande qui vous permet d’accéder à un réseau non sécurisé en toute sécurité. Considérez-le comme une configuration de type « super-SFTP », bien que ce ne soit pas une comparaison 1:1 dans la pratique.

Vous pouvez accéder à votre site depuis presque n’importe quel endroit où vous pouvez utiliser Internet, à condition d’avoir les bons identifiants de connexion. De plus, la plupart des machines macOS et Linux ont un client SSH intégré au système d’exploitation (OS). Pour Windows, vous utiliserez une interface dédiée (et nous en parlerons plus en détail plus tard).

Quant à l’erreur « Warning: Remote Host Identification Has Changed », cela concerne les contrôles de sécurité que votre client effectuera. Une connexion SSH utilise des « clés » dédiées – des petits fichiers stockés sur votre ordinateur – comme authentification. C’est un peu comme handshake Secure Sockets Layers (SSL), et en fait, il y a quelques similitudes de haut niveau entre SSH et SSL.

L’un des aspects auxquels les clés contribuent est de fournir une empreinte permanente de son serveur hôte. Cela permet de s’assurer que la connexion est exacte et que vous n’êtess pas sujet à une attaque de type « machine-in-the-middle ».

Si le client pense que ces empreintes digitales diffèrent de ce qu’il croit être correct, vous obtiendrez l’erreur Warning: Remote Host Identification Has Changed :

[user@hostname ~]$ ssh root@user

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@ 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 a host key has just been changed.

The fingerprint for the RSA key sent by the remote host is

xx:xx:xx.

Please contact your system administrator.

Add correct host key in /home/hostname /.ssh/known_hosts to get rid of this message.

Offending RSA key in /var/lib/sss/pubconf/known_hosts:4

RSA host key for user has changed and you have requested strict checking.

Host key verification failed.

Comme toutes les erreurs, celle-ci est détaillée et claire : elle t’indique ce qui s’est passé, une raison potentielle et comment tu peux y remédier.

Cependant, il y a un aspect que nous pouvons aborder un peu plus avant de te montrer comment réparer l’erreur « Warning : L’identification de l’hôte distant a changé ».

Comment le fichier known_hosts aide l’authentification SSH

Vous remarquerez que le message d’erreur fait référence à un fichier known_hosts. Le nom devrait vous donner un indice sur ce qu’il contient, mais pour plus de clarté, il s’agit d’une liste d’hôtes distants SSH connus de l’ordinateur. Il est utilisé comme fichier client de référence pour le processus d’authentification.

Lorsque vous vous connectez pour la première fois à un serveur, vous recevrez souvent une demande de confirmation via votre interface, vous demandant si vous voulez vous connecter. Si c’est le cas, cette empreinte digitale fera partie de votre fichier known_hosts.

Bien sûr, si l’empreinte digitale diffère de ce qui se trouve dans le fichier known_hosts, cela pourrait indiquer qu’un utilisateur malveillant vous cible. Dans d’autres cas, il se peut que vous sachiez déjà pourquoi il y a une différence, mais il est quand même utile d’être vigilant.

Comment réparer l’erreur Warning: Remote Host Identification Has Changed (sur Windows et Mac)

Vous pouvez travailler pour réparer l’erreur « Warning: Remote Host Identification Has Changed » pour Windows et macOS. Cependant, vous avez plus de flexibilité pour le faire sur Mac.

Nous allons couvrir plusieurs façons de rétablir la situation, en commençant par Windows.

1. Windows

Il est important de noter que les machines Windows peuvent ne pas avoir de fichier known_hosts. Cependant, si vous utilisez le client OpenSSH, il existe un fichier. Pour le trouver, ouvrez la barre de recherche de Windows, et rendez-vous dans votre répertoire utilisateur avec la commande %USERPROFILE%.

Cela ouvrira le répertoire dans l’Explorateur de fichiers. Il y aura aussi un dossier .ssh à l’intérieur :

L'explorateur de fichiers de Windows.
L’explorateur de fichiers de Windows.

Le fichier que nous voulons dans ce répertoire est known_hosts. Vous pouvez l’ouvrir avec Notepad (ou votre éditeur de texte préféré). À l’intérieur se trouvera une liste de clés :

Le fichier known_hosts de Windows.
Le fichier known_hosts de Windows.

Ici, vous pouvez supprimer la clé qui cause le problème, puis réenregistrer le fichier.

Certains utilisateurs préféreront peut-être le client PuTTY. Les clés se trouvent dans le registre, bien qu’elles remplissent la même fonction qu’OpenSSH.

Vous voudrez ouvrir l’éditeur du registre de Windows (autrement connu sous le nom de « regedit »). Vous pouvez le faire de la manière qui vous convient le mieux, mais le moyen le plus rapide est de saisir le nom de l’application dans la barre de recherche de Windows :

Le lien de l'éditeur du registre dans le menu Démarrer de Windows.
Le lien de l’éditeur du registre dans le menu Démarrer de Windows.

Ici, cherchez la destination suivante dans regedit:

HKEY_CURRENT_USER/Software/SimonTatham/PuTTY/SshHostKeys/

Vous verrez ici une liste d’entrées relatives aux connexions enregistrées sur votre ordinateur. Votre travail consiste à supprimer celle qui cause un problème :

Suppression d'une clé de registre dans regedit.
Suppression d’une clé de registre dans regedit.

Une fois que vous aurez cliqué sur le bouton Supprimer, vous devrez également confirmer que vous voulez supprimer la clé :

La boîte de dialogue Confirmer la suppression de la valeur.
La boîte de dialogue Confirmer la suppression de la valeur.

En cliquant sur Oui ici, la clé disparaîtra pour de bon et vous ne devriez plus recevoir l’erreur « Warning : Remote host identification has changed ».

2. Mac

Sur Mac, il y a plusieurs façons de réparer l’erreur « Warning : Remote host identification has changed » – soit par le biais d’une application premium comme SSH Config Editor, soit par le biais du Terminal. Les résultats seront les mêmes, nous vous conseillons donc de choisir l’option la plus confortable (et la plus économique).

Notre approche préférée est d’accéder au fichier dans une fenêtre Terminal (ou iTerm2 si vous utilisez cette application), et de l’ouvrir également avec un éditeur dédié Nano ou Vim. C’est parce que c’est accessible à tous et simple à utiliser, quel que soit votre niveau d’expérience.

Ici, nous allons utiliser Nano. Tout d’abord, ouvrez votre Terminal en utilisant le processus qui vous convient le mieux :

Ouvrir le Terminal depuis Spotlight.
Ouvrir le Terminal depuis Spotlight.

De là, exécutez la commande nano ~/.ssh/known_hosts dans votre fenêtre. Cela ouvrira une nouvelle instance de Nano et affichera les clés de votre fichier known_hosts:

L'éditeur Nano avec le fichier known_hosts ouvert.
L’éditeur Nano avec le fichier known_hosts ouvert.

Vous devezs supprimer la clé qui provoque l’erreur « Warning : Remote host identification has changed », puis enregistrez vos modifications.

Vous pouvez aussi vouloir supprimer l’intégralité du fichier known_hosts, surtout si vous n’utilisez SSH que pour un ou deux sites. Pour cela, vous pouvez exécuter rm .ssh/known_hosts dans une fenêtre de Terminal.

Il existe une autre méthode pour modifier le fichier known_hosts sur Mac : utiliser l’utilitaire ssh-keygen depuis la ligne de commande. Cette méthode est idéale si vous ne voulez pas fouiller dans le fichier lui-même ou si vous voulez travailler avec un seul site ou une seule clé.

Pour cela, ouvrez une fenêtre Terminal et exécutez ssh-keygen, suivi du nom d’hôte de votre serveur. Par exemple :

ssh-keygen -R server.example.com

Cela ne vous demandera pas si vous voulez supprimer les lignes spécifiées, alors assurez-vous que vous supprimez les bonnes avant de continuer :

Utilisation de ssh-keygen pour supprimer depuis le fichier known_hosts.
Utilisation de ssh-keygen pour supprimer depuis le fichier known_hosts.

Une fois que c’est fait, vous ne devriez plus recevoir l’erreur « Warning : Remote host identification has changed » à partir de là.

Résumé

La sécurité du web ne consiste pas seulement à installer des extensions et à créer un mot de passe fort. Les connexions que vous utilisez pour vous connecter aux serveurs nécessitent votre plus grande attention. Si vous ne voulez pas être victime d’une attaque de type « machine-in-the-middle », vous voudrez utiliser l’accès SSH lorsque vous vous connectez.

Cependant, le système fonctionne presque trop bien. Vous pouvez obtenir l’erreur « Warning : Remote host identification has changed » pour plusieurs raisons, dont certaines sont innocentes.

Quoi qu’il en soit, vous pouvez réparer l’erreur en un rien de temps par le biais d’une Invite de commande ou d’un Terminal, en utilisant seulement quelques de commandes.