332 votes

Comment désactiver la vérification stricte des clés d'hôte dans ssh ?

Je voudrais désactiver la vérification stricte de la clé de l'hôte dans ssh pour Ubuntu 11.04. Comment faire ?

321voto

pele Points 9

Dans votre ~/.ssh/config (si ce fichier n'existe pas, il suffit de le créer) :

Host *
    StrictHostKeyChecking no

Cela le désactivera pour tous les hôtes auxquels vous vous connectez. Vous pouvez remplacer l'option * avec un modèle de nom d'hôte si vous voulez qu'il ne s'applique qu'à certains hôtes.

Assurez-vous que les permissions sur le fichier limitent l'accès à vous-même uniquement :

sudo chmod 400 ~/.ssh/config

307voto

MarkHu Points 5086

Plutôt que de l'ajouter à votre ~/.ssh/config pour tous les hôtes *, il serait plus sûr de spécifier un hôte particulier.

Vous pouvez également passer un paramètre sur la ligne de commande comme ceci :

ssh -o StrictHostKeyChecking=no yourHardenedHost.com

Cela ajoutera automatiquement la clé d'hôte à votre fichier known_hosts si elle n'y est pas déjà.

S'il y a un décalage, il affichera un grand avertissement et ne mettra pas à jour known_hosts. Il désactivera également l'authentification par mot de passe pour éviter les attaques MITM. L'authentification par clé privée continuera cependant à passer automatiquement, ce que vous ne souhaitez peut-être pas.

160voto

pacifist Points 1758

Il est utile d'indiquer ce paramètre dans votre configuration ssh :

StrictHostKeyChecking no

Cela signifie que les clés d'hôtes sont toujours ajoutées à .ssh/known_hosts - vous ne serez simplement pas invité à leur faire confiance, mais si les hôtes changent, je suis prêt à parier que vous recevrez le gros avertissement à ce sujet. Vous pouvez contourner ce problème en ajoutant un autre paramètre :

UserKnownHostsFile /dev/null

Cela ajoutera tous ces hôtes "nouvellement découverts" à la corbeille. Si la clé d'un hôte change, pas de problème.

Je m'en voudrais de ne pas mentionner que le contournement de ces avertissements sur les clés d'hôte a des ramifications évidentes en matière de sécurité - vous devez faire attention à ce que vous le fassiez pour les bonnes raisons et à ce que ce à quoi vous vous connectez soit réellement est à quoi vous voulez vous connecter et non à un hôte malveillant, car à ce stade, vous avez érodé une grande partie de la sécurité de ssh en tant que solution.

Par exemple, si vous essayez de définir ce paramètre à l'aide de la ligne de commande, la commande complète sera la suivante :

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user@host

Ce serait cependant stupide - étant donné que les exemples de travail ci-dessus pour les fichiers de configuration ssh sont susceptibles d'avoir plus de sens dans tous les cas.

23voto

Kyle Points 239

FYI. Je préfère désactiver la vérification de l'hôte uniquement lorsque j'utilise cssh.

alias cssh='ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'

15voto

qwertzguy Points 593

Si vous voulez désactiver une seule fois, utilisez :

ssh -o UserKnownHostsFile=/dev/null

Cela fonctionnera également si la clé de l'hôte change et veillera à ne pas enregistrer la clé en tant que clé de confiance pour plus de sécurité.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X