GNU/Linux >> Tutoriels Linux >  >> Linux

Comment réparer la clé offensante dans le fichier ~/.ssh/known_hosts

Comme nous l'avons vu précédemment dans notre article sur les commandes client ssh de base, lorsque vous utilisez ssh sur une machine pour la première fois (ou chaque fois qu'il y a un changement de clé sur la machine distante), vous serez invité à dire "oui" pour l'authenticité de l'hôte. .

Cette fonctionnalité est contrôlée à l'aide du paramètre ssh StrictHostKeyChecking. Par défaut, StrictHostKeyChecking est défini sur oui.

Le paramètre par défaut de "StrictHostKeyChecking yes" est la meilleure option du point de vue de la sécurité pour protéger votre système contre toute attaque de cheval de Troie. Si vous ne savez pas ce que vous faites, vous ne devez pas définir StrictHostKeyChecking sur non.

Parfois, il peut être bon de le désactiver temporairement. Par exemple, la première fois que vous vous connectez à de nombreux hôtes connus, vous pouvez désactiver cette fonctionnalité (c'est-à-dire demander oui pour les clés d'hôte) et laisser ssh ajouter automatiquement toutes les clés d'hôte. Plus tard, vous pourrez activer cette fonctionnalité.

Lorsque vous avez configuré une connexion automatisée sans mot de passe pour un serveur et si la clé de l'hôte distant continue de changer pour une raison (que vous savez pourquoi elle change), vous pouvez envisager de définir StrictHostKeyChecking sur non jusqu'à ce que le problème de la clé de l'hôte distant continue de changer est corrigé.

À partir de la ligne de commande ssh, vous pouvez passer l'option StrictHostKeyChecking comme indiqué ci-dessous. Vous pouvez également définir cette option dans votre fichier ssh_config

# ssh -o 'StrictHostKeyChecking no' user@host

Si vous vous connectez au serveur pour la 1ère fois, il ajoutera définitivement le RSA à la liste des hôtes connus sans vous le demander .

Mais, s'il y a un changement de clé (normalement, si le système d'exploitation (ou sshd) est réinstallé, la clé de l'hôte distant changera), vous devez supprimer l'ancienne clé invalide comme indiqué ci-dessous.

Supprimez la clé ssh incriminée

L'erreur suivante s'affichera lorsque la clé d'hôte distant changera (après vous être connecté précédemment avec une clé d'hôte distant valide).

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 is
a7:a8:f2:97:94:33:58:b7:9d:bc:e0:a6:6b:f7:0a:29.
Please contact your system administrator.
Add correct host key in /home/ramesh/.ssh/known_hosts to get rid of this message.
Offending key in /home/ramesh/.ssh/known_hosts: 6
Permission denied (publickey,password).

Vous devez retirer la clé pour continuer. Utilisez la commande suivante pour supprimer la clé incriminée.,

# sed -i '6d' ~/.ssh/known_hosts

Remarque :Changer le 6d selon le numéro de ligne affiché.

Si votre sed n'a pas l'option -i, utilisez perl ou utilisez un éditeur pour supprimer la clé incriminée.

Solution Perl :

# perl -pi -e 's/\Q$_// if ($. == 6);' ~/.ssh/known_hosts

Remarque :Changez le numéro de ligne de 6 au numéro de ligne approprié.


Linux
  1. Comment configurer des clés SSH

  2. [Linux] :comment hacher les fichiers hôtes connus du répertoire ~/.ssh/

  3. Ssh - Passer des mots de passe à un script ?

  4. Comment corriger l'erreur "échec de la vérification de la clé de l'hôte"

  5. SSH - Comment inclure la commande -t dans le fichier ~/.ssh/config

Comment ajouter une clé publique SSH au serveur

Comment améliorer la sécurité SSH sur Ubuntu 18.04

Comment ajouter une clé SSH au code VS et se connecter à un hôte

Comment convertir la clé privée de PuTTY (.ppk) en clé SSH

Comment désactiver la vérification de la clé d'hôte SSH sous Linux

Ajouter la clé publique au fichier known_hosts