Comment ignorer la question «known_host» la première fois que je me connecte à une machine via SSH avec des clés publiques / privées? [dupliquer]

Réponses:

31

Toutes les autres réponses actuelles ne contiennent pas le UserKnownHostsFile = / dev / null

Si vous voulez simplement le faire une fois que vous pouvez utiliser:

ssh -o StrictHostKeychecking=no hostname

Si vous voulez le faire à plusieurs reprises, vous devez ajouter quelque chose comme ce qui suit à votre ~ / .ssh / config

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

Pour le configurer sur OpenSSH pour Windows, remplacez simplement /dev/nullpar NUL.

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

Jason Axelson
la source
2
J'ai cherché pour filtrer un sous-réseau pendant des mois (pas activement), c'est exactement ce que je voulais. Nous avons un petit réseau de développement avec DHCP et nos appareils obtiennent toujours de nouvelles adresses IP, ce qui facilite leur connexion. Merci!
Adam Lewis
13

Désactivez StrictHostKeyCheckingvia ssh_configou les options de ligne de commande.

le chaos
la source
/ etc / ssh / ssh_config ou ~ / .ssh / config --- ou quel que soit l'équivalent sur Windows si c'est votre plateforme client
Doug Harris
3

Vous pouvez obtenir la clé publique, l'ajouter au fichier known_hosts puis la ressasser:

ssh-keyscan -t rsa hostname >> .ssh/known_hosts
ssh-keygen -H
rm .ssh/known_hosts.old
egridasov
la source
2
$ ssh -o StrictHostKeychecking=no hostname

Cela entraînera le saut de la vérification et l'ajout automatique de la clé de l'hôte distant lors de la première connexion. (Il existe également l'option CheckHostIP, mais il ne semble pas désactiver la vérification de l'existence d'une clé).

Nelson
la source
2
J'aime également utiliser UserKnownHostsFile afin que la signature ne soit pas mémorisée sur mon système. Un bon truc:ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeychecking=no hostname
metavida
2

Cela m'a pris du temps à trouver. Le cas d'utilisation le plus courant que j'ai vu est lorsque vous avez des tunnels ssh vers des réseaux distants. Toutes les solutions ici ont produit des avertissements qui ont cassé mes scripts (nagios).

L'option dont j'avais besoin était:

NoHostAuthenticationForLocalhost yes

Ce qui, comme son nom l'indique, ne s'applique qu'à l'hôte local.

richo
la source
0

Vous pouvez désactiver la vérification, mais bien sûr, cela est moins sécurisé. Dans une situation idéale, ce que vous devez faire est de demander à quelqu'un qui a déjà accès à la machine de récupérer sa clé d'hôte publique et de dire à ssh de l'utiliser. c'est-à-dire: prendre la sortie de:

cat /etc/ssh/ssh_host_rsa_key.pub

ajoutez le nom d'hôte de la machine et ajoutez cette ligne au fichier ~ / .ssh / known_hosts sur votre machine. Vous vous retrouverez avec quelque chose qui ressemble à:

myhost.example.com ssh-rsa AAAAB3Netc ...

Alternativement, si vous voulez simplement saisir l'empreinte digitale de la clé, ce qui peut être plus facile à transférer sur un canal à bande passante limitée (comme un appel téléphonique), vous pouvez faire fonctionner votre assistant:

ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

la source
0

Si vous souhaitez simplement désactiver temporairement la vérification de l'hôte, vous pouvez donc vous connecter à un système LiveCD, par exemple, renommer ~/.ssh/known_hostsquelque chose d'autre, puis le modifier à nouveau lorsque vous avez terminé.

endolith
la source
-2
  1. Ajoutez "StrictHostKeyChecking no" à / etc / ssh / ssh_config
  2. cd ~ / .ssh
  3. rm known_hosts
  4. ln -s / dev / null hôtes_connus

Bingo

Cliff Kennedy
la source
1
Vous savez quel genre d'attaque cette question est censée empêcher, n'est-ce pas?
vonbrand