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)? 
shantanuo
la source
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
semblable à askubuntu.com/questions/87449/…
MarkHu

Réponses:

235

Utilisez l' -ooption,

ssh -o "StrictHostKeyChecking no" user@host
le geek
la source
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

JimFred
la source
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.

Paul R
la source
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.

sleske
la source
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 [email protected]
RJ
la source
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.

IvanReed
la source
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
Andrew McCombe
la source