Comment puis-je éviter la vérification d'hôte SSH pour des hôtes connus?


170

Je reçois le message suivant chaque fois que j'essaie de connecter un serveur à l'aide de SSH. Je tape "oui", mais y a-t-il un moyen de dire cela?

The authenticity of host '111.222.333.444 (111.222.333.444)' can't be established.
RSA key fingerprint is f3:cf:58:ae:71:0b:c8:04:6f:34:a3:b2:e4:1e:0c:8b.
Are you sure you want to continue connecting (yes/no)? 

8
/ dev / null existe pour ceux qui pensent être immunisés contre l'homme au milieu des attaques :)
Tim Post

1
Pire partie: Tapez ypour gagner du temps, et il se plaint: Please type 'yes' or 'no': (hmph)
ADTC

Réponses:


235

Utilisez l' -ooption,

ssh -o "StrictHostKeyChecking no" user@host

1
Vous pouvez utiliser un autre fichier d’identité avec le drapeau '-i'
MUY Belgique

Quelle utilisation serait d'utiliser un fichier d'identité alternatif? Je veux dire, si vous vous connectez à un hôte compromis, quelle différence cela fait-il de la façon dont vous vous authentifiez - ce n'est pas comme si cet hôte compromis pouvait également voler votre clé.
Dagelf

102

Ajoutez les lignes suivantes au début de /etc/ssh/ssh_config...

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

Les options:

  • Le sous-réseau hôte peut *autoriser un accès illimité à toutes les adresses IP.
  • Modifiez /etc/ssh/ssh_configpour une configuration globale ou ~/.ssh/configpour une configuration spécifique à l'utilisateur.

Voir http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html


2
Dommage que je ne puisse vous inviter qu'une seule fois. Définir les hôtes connus sur / dev / null est génial.
J0hnG4lt

1
Votre le plus intelligent.
Dark Egregious

30
Ha! Dis à ma femme.
JimFred

30

Vous ne devriez l'obtenir que la première fois que vous vous connectez à un nouvel hôte. Une fois que vous avez répondu, yesl'hôte est stocké ~/.ssh/known_hostset vous ne serez pas invité à la prochaine connexion.

Notez que si ~/.ssh/known_hostsvous ne pouvez pas écrire pour une raison quelconque (par exemple, un problème d'autorisations), vous serez invité à chaque fois que vous vous connecterez.


7
La question est de savoir s'il est possible d'éviter l'invite?
Shantanuo

J'ai essayé d'ajouter "CheckHostIP no" au fichier / etc / ssh / ssh_config. Mais cela ne semble pas fonctionner
shantanuo

2
sudo chown -R utilisateur: utilisateur .ssh; sudo chmod 700 .ssh; sudo chmod -R 600 .ssh /; ssh-keygen -R $ nom_hôte et reconnexion qui devrait résoudre TOUS les problèmes et SEULEMENT une nouvelle invite si une clé ssk_Hostkey est masquée | changé ou vous êtes victime d'un MITM.
linuxdev2013

1
il dit "à tout moment", donc cette réponse est super appropriée
Tarikakyol

12

La meilleure façon (car elle ne sacrifie pas la sécurité) est de se connecter une seule fois à tous les ordinateurs à partir d'un client (vous serez invité à chaque fois, répondez toujours par l'affirmative). Comme indiqué dans l'autre réponse, les clés seront alors stockées dans ~ / .ssh / known_hosts. Copiez ensuite ce fichier sur chaque ordinateur client auquel vous voudrez peut-être vous connecter ultérieurement (éventuellement pour chaque compte d'utilisateur que vous utilisez). Alors tous ces comptes "connaîtront" les ordinateurs, donc pas d'invite.

L'avantage par rapport à la simple désactivation de l'invite est que SSH peut réellement vérifier s'il y a une attaque MITM.


1
Bien que, si vous utilisez souvent ssh via des connexions en aval, vous voudrez ajouter ceci à / etc / ssh / ssh_config: Host 127.0.0.1 NoHostAuthenticationForLocalhost yes
Dagelf Le

1

Si vous souhaitez désactiver la confirmation plutôt que l'authentification, vous pouvez utiliser l'option: "-o CheckHostIP = no"

ssh -i sergeys_rsa_key.pem -o CheckHostIP=no brin@8.8.8.8

Le PO a déjà reçu la même réponse et l'a acceptée.
Ayan

0

Ceci est probablement dû au fait que votre serveur de clé ssh a changé, car l'adresse IP ou le domaine du serveur sont identiques, mais incompatibles avec la clé ssh.

Vous devez supprimer la clé stockée /home/$user/.ssh/known_hostspour éviter ce message.

Je l'ai corrigé en supprimant toutes les clés de ce fichier, ainsi un nouveau jeton est créé pour ce nom de domaine.


1
La clé modifiée produit un message beaucoup plus laid avec une boîte de lettres et WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! et IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!en majuscules. Le message dans la question n'apparaît que s'il n'y a pas déjà une entrée dans known_hosts.
dave_thompson_085

-1

Vérifiez les autorisations sur votre ~/.ssh/known_hostsfichier. Les miens étaient incorrects quand j'ai eu ce problème. Je l'ai corrigé avec:

chmod 0600 ~/.ssh/known_hosts
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.