Comment réparer « Avertissement : l'identification de l'hôte distant a changé ! »

Publié: 2024-10-16
Table des matières
  • Comprendre l'avertissement
  • Vérifier l'identité du serveur
  • Solution 1 : supprimez manuellement l'ancienne clé d'hôte (Windows, Mac, Ubuntu)
  • Solution 2 : effacez l'intégralité du fichier known_hosts (Windows, Mac, Ubuntu)
  • Solution 3 : ignorer temporairement la vérification de la clé hôte (Windows, Mac, Ubuntu)
  • Solution 4 : ajouter manuellement la nouvelle clé d'hôte (Windows, Mac, Ubuntu)
  • Solution 5 : vérifiez les modifications DNS ou d'adresse IP (Windows, Mac, Ubuntu)
  • Meilleures pratiques pour éviter ce problème à l'avenir (Windows, Mac, Ubuntu)
  • Conclusion

Lorsque vous essayez de vous connecter à un serveur distant à l'aide de SSH, vous pouvez rencontrer le message d'erreur : « Avertissement : l'identification de l'hôte distant a changé ! » . Ce message est une fonctionnalité de sécurité que SSH utilise pour vous protéger contre les attaques de l'homme du milieu, où un tiers pourrait intercepter votre communication avec le serveur.

En termes simples, cet avertissement vous indique que l'empreinte digitale du serveur (un identifiant unique stocké sur votre machine locale) ne correspond pas à ce que SSH a précédemment enregistré. Il peut s'agir d'un changement légitime, comme la réinstallation du serveur ou le changement de son adresse IP, mais cela peut également signaler une menace potentielle pour la sécurité. SSH bloque la connexion pour protéger votre système jusqu'à ce que vous vérifiiez l'authenticité du serveur.

Dans cet article, nous expliquerons comment résoudre ce problème en toute sécurité sur les systèmes Mac , Ubuntu (Linux) et Windows , en vous assurant que vous pouvez continuer à vous connecter en toute sécurité sans ignorer les risques potentiels.

Vous pourriez être intéressé à lire : Comment corriger une erreur d'autorisation refusée (Publickey)

Comprendre l'avertissement

Pourquoi l'avertissement apparaît-il ?

SSH stocke une empreinte digitale de la clé du serveur distant dans un fichier appelé known_hosts sur votre ordinateur local. Cette empreinte digitale est utilisée pour vérifier que vous vous connectez au même serveur chaque fois que vous utilisez SSH. Si l'empreinte digitale du serveur change, SSH vous affichera l'avertissement car il ne peut pas être certain si l'identité du serveur a changé légitimement ou si quelqu'un tente d'intercepter votre connexion.

Scénarios courants d'avertissement :

  • Réinstallation ou mise à niveau du serveur : si le serveur a été réinstallé, réinitialisé ou mis à niveau, il peut générer une nouvelle clé SSH, qui ne correspondra pas à celle stockée dans votre fichier known_hosts .
  • Changement d'adresse IP : si l'adresse IP du serveur a changé (par exemple, en raison du passage à un nouveau fournisseur d'hébergement ou à un nouveau réseau), SSH peut signaler cela comme un changement suspect.
  • Modifications DNS : s'il y a des mises à jour ou des erreurs de configuration dans les enregistrements DNS du serveur, SSH peut interpréter cela comme un serveur différent.
  • Modifications de la configuration du serveur : Parfois, les administrateurs de serveur modifient la configuration de leur clé SSH, ce qui entraîne une nouvelle clé qui ne correspond pas à la précédente.
  • Menace de sécurité potentielle (attaque de l'homme du milieu) : l'avertissement peut être le signal d'une personne tentant d'intercepter votre connexion au serveur. Si vous n'êtes pas sûr des modifications, il est essentiel de vérifier l'identité du serveur avant de continuer.

Le rôle du fichier known_hosts :

Le fichier known_hosts est l'endroit où SSH stocke les informations sur les hôtes distants auxquels vous vous êtes déjà connecté. Le fichier se trouve généralement dans le répertoire ~/.ssh/ sur Mac et Ubuntu, et pour les utilisateurs de PuTTY sous Windows, il stocke les clés d'hôte dans le registre Windows.

Vérifier l'identité du serveur

Avant d'apporter des modifications pour résoudre le problème « L'identification de l'hôte distant a changé ! " Attention, il est crucial de vérifier si l'identité du serveur a légitimement changé. Cette étape garantit que vous n’êtes pas victime d’une attaque de l’homme du milieu.

Pourquoi devriez-vous d'abord vérifier l'identité du serveur

Ignorer cette étape pourrait entraîner la connexion à un serveur compromis ou malveillant, ce qui pourrait mettre en danger vos données ou vos informations d'identification. Traitez toujours cet avertissement au sérieux, surtout si vous n'êtes pas sûr des récentes modifications apportées au serveur.

Étapes pour vérifier l'identité du serveur :

  • Contactez l'administrateur du serveur : si ce n'est pas vous qui gérez le serveur, contactez l'administrateur ou le fournisseur d'hébergement et demandez si des modifications récentes ont été apportées, telles qu'un changement d'adresse IP, une réinstallation du serveur ou une régénération de clé.
  • Comparez l'empreinte digitale de la clé hôte : utilisez la commande suivante pour vérifier manuellement la clé hôte du serveur :
     ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

    La sortie affichera l'empreinte digitale de la clé hôte, que vous pourrez comparer à celle de votre fichier known_hosts ou à celle demandée à l'administrateur du serveur.

Solution 1 : supprimez manuellement l'ancienne clé d'hôte (Windows, Mac, Ubuntu)

Pour Mac et Ubuntu (Linux) :

  1. Ouvrez le terminal.
  2. Ouvrez le fichier ~/.ssh/known_hosts à l'aide d'un éditeur de texte :
     nano ~/.ssh/known_hosts
  3. Recherchez la ligne qui correspond au nom d'hôte ou à l'adresse IP du serveur distant.
  4. Supprimez la ligne contenant l'ancienne clé d'hôte.
  5. Enregistrez le fichier et fermez l'éditeur de texte.
  6. Reconnectez-vous au serveur via SSH :
     ssh <username>@<hostname>

Suppression automatisée (Mac et Ubuntu) :

Au lieu de modifier manuellement le fichier known_hosts , vous pouvez utiliser la commande suivante pour supprimer automatiquement l'ancienne clé d'hôte :

 ssh-keygen -R <hostname or IP>

Pour Windows (avec PuTTY) :

  1. Ouvrez PuTTY .
  2. Appuyez sur Windows + R , tapez regedit et appuyez sur Entrée.
  3. Accédez au chemin du registre :
     HKEY_CURRENT_USER\Software\Myusername\PuTTY\SshHostKeys
  4. Localisez l'entrée associée au nom d'hôte ou à l'adresse IP du serveur distant.
  5. Faites un clic droit sur l'entrée et sélectionnez Supprimer .
  6. Reconnectez-vous au serveur dans PuTTY et il vous demandera d'accepter la nouvelle clé.

Pour Windows (en utilisant Git Bash) :

  1. Ouvrez Git Bash .
  2. Exécutez la commande suivante :
     ssh-keygen -R <hostname>
  3. SSH vous demandera d'accepter la nouvelle clé lors de votre prochaine connexion.

Solution 2 : effacez l'intégralité du fichier known_hosts (Windows, Mac, Ubuntu)

Pour Mac et Ubuntu (Linux) :

  1. Ouvrez le terminal.
  2. Exécutez la commande suivante pour supprimer l'intégralité du fichier known_hosts :
     rm ~/.ssh/known_hosts
  3. Reconnectez-vous au serveur distant via SSH :
     ssh <username>@<hostname>

Pour Windows (avec PuTTY) :

  1. Ouvrez PuTTY .
  2. Appuyez sur Windows + R , tapez regedit et appuyez sur Entrée pour ouvrir l' éditeur de registre .
  3. Accédez à :
     HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
  4. Cliquez avec le bouton droit sur le dossier SshHostKeys et choisissez Supprimer . Cela supprimera toutes les clés d'hôte stockées.
  5. Reconnectez-vous au serveur à l'aide de PuTTY et vous serez invité à accepter la nouvelle clé d'hôte.

Pour Windows (en utilisant Git Bash) :

  1. Ouvrez Git Bash .
  2. Supprimez le fichier known_hosts en exécutant :
     rm ~/.ssh/known_hosts
  3. Lorsque vous vous reconnectez au serveur via SSH, vous serez invité à accepter la nouvelle clé d'hôte.

Solution 3 : ignorer temporairement la vérification de la clé hôte (Windows, Mac, Ubuntu)

Si vous avez besoin de vous connecter rapidement au serveur et que vous n'avez pas le temps de supprimer manuellement les anciennes clés d'hôte, vous pouvez temporairement contourner la vérification de la clé d'hôte. Bien que cette méthode fonctionne à la rigueur, elle n’est pas recommandée pour une utilisation régulière car elle peut vous exposer à des risques de sécurité potentiels.

Pour Mac et Ubuntu (Linux) :

 ssh -o StrictHostKeyChecking=no <username>@<hostname>

Pour Windows (en utilisant Git Bash) :

 ssh -o StrictHostKeyChecking=no <username>@<hostname>

Pour Windows (avec PuTTY) :

  1. Ouvrez PuTTY .
  2. Accédez à Connexion > SSH > Clés d'hôte .
  3. Désactivez la vérification de la clé de l'hôte en sélectionnant Toujours accepter .
  4. Reconnectez-vous au serveur sans vérifier la clé d'hôte.

Solution 4 : ajouter manuellement la nouvelle clé d'hôte (Windows, Mac, Ubuntu)

Pour Mac et Ubuntu (Linux) :

 ssh-keyscan -H <hostname> >> ~/.ssh/known_hosts

Pour Windows (en utilisant Git Bash) :

 ssh-keyscan -H <hostname> >> ~/.ssh/known_hosts

Pour Windows (avec PuTTY) :

Malheureusement, PuTTY n'a pas d'équivalent direct pour ssh-keyscan . Pour ajouter la clé d'hôte manuellement, vous devrez vous connecter au serveur et autoriser PuTTY à vous demander la nouvelle clé d'hôte.

Solution 5 : vérifiez les modifications DNS ou d'adresse IP (Windows, Mac, Ubuntu)

Pour Mac et Ubuntu (Linux) :

 nslookup <hostname>
 dig <hostname>

Pour Windows (en utilisant Git Bash) :

 nslookup <hostname>
 dig <hostname>

Pour Windows (avec PuTTY) :

  1. Ouvrez l'invite de commande ou PowerShell .
  2. Utilisez la commande suivante pour vérifier le DNS ou l'adresse IP :
     nslookup <hostname>
  3. Comparez l'adresse IP dans la sortie avec ce que PuTTY affiche dans le registre.
  4. Si l'adresse IP a changé, supprimez l'ancienne clé d'hôte du registre de PuTTY en accédant à :
     HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
  5. Reconnectez-vous via PuTTY et il vous demandera d'accepter la nouvelle clé.

Meilleures pratiques pour éviter ce problème à l'avenir (Windows, Mac, Ubuntu)

  • Utiliser des adresses IP statiques : configurez vos serveurs avec des adresses IP statiques pour éviter les modifications inattendues pouvant déclencher l'avertissement.
  • Nettoyer ou mettre à jour régulièrement known_hosts : examinez et nettoyez périodiquement les clés d'hôte anciennes ou obsolètes.
  • Envisagez d'utiliser des certificats SSH : utilisez des certificats SSH pour une gestion évolutive des clés d'hôte, réduisant ainsi les risques de cet avertissement.
  • Surveillez les modifications DNS ou IP : gardez un œil sur les modifications apportées aux enregistrements DNS ou aux adresses IP et mettez à jour known_hosts en conséquence.

Conclusion

Le message « L'identification de l'hôte distant a changé ! » L'avertissement est une fonctionnalité de sécurité essentielle dans SSH qui empêche tout accès non autorisé en vérifiant l'identité des serveurs distants. Même si cela peut être alarmant, il est important de prendre les mesures nécessaires pour vérifier l'identité du serveur avant de procéder à toute modification.

En utilisant les solutions décrites dans cet article, vous pouvez résoudre l'avertissement en toute sécurité, que vous soyez sous Windows , Mac ou Ubuntu . N'oubliez jamais de vérifier d'abord l'authenticité du serveur, puis de choisir la solution la mieux adaptée à votre situation, qu'il s'agisse de supprimer l'ancienne clé d'hôte, d'effacer le fichier known_hosts ou de contourner temporairement la vérification.

De plus, suivre les meilleures pratiques telles que l'utilisation d'adresses IP statiques, la mise à jour régulière known_hosts et la prise en compte des certificats SSH peuvent aider à minimiser l'apparition de ce problème à l'avenir.