Désactiver StrictHostKeyChecking dans ssh

14

J'essaie de me connecter à un hôte Linux en utilisant sshet j'obtiens l'erreur suivante

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

Je voudrais remplacer cela, mais je n'arrive pas à trouver de combinaison d'options pour ce faire.

J'ai probablement défini StrictHostKeyChecking il y a des années, mais je ne me souviens pas comment.

J'ai consulté man sshce qui m'informe que le fichier de configuration à l'échelle du système est /etc/ssh/ssh_configet que la valeur par défaut pour le fichier de configuration par utilisateur ~/.ssh/confign'existe pas.

EDIT Pour clarifier ma question, l'option est clairement définie. J'essaye de découvrir

  1. Où les options sont stockées (je n'ai pas les fichiers mentionnés dans la page de manuel, ce qui semble être faux).
  2. Comment changer les options.

Je ne cherche pas à contourner le problème que je rencontre (je sais que je peux modifier le fichier known_hosts, mais c'est fastidieux chaque fois que j'essaie un nouveau serveur).

Milliways
la source
C'est /etc/ssh_configsur le mien.
sborsky
@sborsky Je l'ai aussi (ce qui est différent de l'homme) mais toutes les options sont commentées.
Milliways
Cela signifie par défaut, ce qui, selon la page de manuel est ask. Lorsqu'une clé d'hôte est modifiée, le client ssh ne se connecte que s'il StrictHostKeyCheckingest défini sur no. Si la clé d'hôte ne change pas très souvent, je suggère de supprimer cette seule clé d'hôte de votre ~/.ssh/known_hostsau lieu de changer la configuration.
sborsky
1
Vous devez d'abord comprendre pourquoi il a été modifié. Si vous ne l'avez pas modifié, il peut s'agir d'une attaque MitM, et vous ne devez bien sûr pas autoriser cette clé d'hôte!
Nom d'affichage
note latérale - après avoir supprimé tous les enregistrements d'un hôte donné, .ssh/known_hostsj'ai continué à recevoir l'avertissement jusqu'à ce que je découvre la ligne incriminée dans un autre fichier appelé .ssh/known_hosts2. apparemment OS X utilise les deux
billynoah

Réponses:

18

Pour désactiver la vérification stricte de l'hôte sous OS X pour l'utilisateur actuel, créez ou modifiez ~ / .ssh / config et ajoutez les lignes suivantes:

Host [IP Address] 
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Un exemple typique pour les hôtes de votre réseau local pourrait être:

Host 10.1.1.*
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Selon votre utilisation de ssh, je ne recommande pas de désactiver la vérification stricte des clés d'hôte pour tous les hôtes.

Si vous souhaitez simplement supprimer l'entrée du 10.1.1.20, ouvrez ~ / .ssh / known_hosts avec un éditeur de votre choix et supprimez la ligne respective "10.1.1.20 ssh-rsa public-key $ "

klanomath
la source
Semble également fonctionner sans la ligne / dev / null.
John2095
6

Vous pouvez simplement l'essayer tel quel sans confitguration, juste en ligne de commande:

ssh -o StrictHostKeyChecking=no hostname

Mais je ne pense pas que cela fasse tout ce dont vous avez besoin. Si vous souhaitez ignorer toutes les vérifications de clé d'hôte, vous devez configurer votre known_hostsfichier pour /dev/nullqu'il n'y ait jamais rien de stocké:

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostname

ou dans /etc/ssh_config:

StrictHostKeyChecking no
UserKnownHostsFile /dev/null
Jakuje
la source
Le 1er ne m'a toujours pas permis de me connecter, mais il l'a ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostnamefait. Je ne trouve toujours pas OERE StrictHostKeyChecking est défini!
Milliways
Par défaut, il est "oui", il ne doit donc être défini nulle part pour s'appliquer.
Jakuje
La documentation indique que la valeur par défaut est oui
Milliways
choisir comme solution aiderait si cela permettait de résoudre votre problème;)
Jakuje