web-dev-qa-db-fra.com

N'ajoutez pas hostkey à known_hosts pour SSH

Je souhaite me connecter à un hôte via SSH mais je ne souhaite pas que le nom d'hôte soit ajouté à mon ~/.ssh/known_hosts.

Comment puis je faire ça?

100
Albert
-o "UserKnownHostsFile /dev/null"

devrait marcher.

86
Albert

Si vous voulez ce comportement parce que vous travaillez avec des serveurs cloud (AWS EC2, Rackspace CloudServers, etc.) ou que vous fournissez constamment de nouvelles images dans Vagrant, vous pouvez mettre à jour votre configuration SSH au lieu d’ajouter des alias bash ou davantage ligne de commande.

Pensez à ajouter quelque chose comme:

Host *.mydomain.com 
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  User foo
  LogLevel QUIET
  • Utilisez aussi stricte que regex pour Host que possible pour être sécurisé.
  • Régler le LogLevel sur QUIET gardera l’Avertissement mentionné par Guillaume de ne pas apparaître
87
cclark

J'ai l'impression d'ajouter la clé de l'hôte à votre unknown_hosts (les personnes qui exécutent ces services sont, au moins, assez intelligentes pour que leurs clés de l'hôte restent cohérentes entre les ordinateurs servant le même nom d'hôte), puis d'activer StrictHostKeyChecking, de désactiver CheckHostIP la journalisation avec LogLevel ERROR vous donnera la meilleure expérience sans sacrifier la sécurité. (Ok, sans CheckHostIP, vous devez faire confiance à DNS, qui est un énorme trou béant sans DNSSEC répandu ou quelque chose de similaire; mais nous allons simplement balayer cela sous le tapis pour le moment.)

J'utilise un fichier known_hosts en lecture seule, je dois donc faire quelque chose ou je reçois des avertissements sans fin sur l'impossibilité d'ajouter des entrées à known_hosts.

Ce que j'utilise:

Host github.com *.github.com
StrictHostKeyChecking yes
CheckHostIP no
LogLevel ERROR

J'aimerais que ces services publient leurs clés d'hôte SSH sur leurs sites Web via HTTPS, afin de pouvoir les copier explicitement sans avoir à me connecter au préalable et potentiellement s'exposer à une attaque MITM.

8
Kyle Rose

Je suggère

LogLevel ERROR

plus de

LogLevel QUIET

de sorte que vous obtenez toujours "Impossible de résoudre le nom d'hôte" et d'autres erreurs de ce type

5
kiloforce

Pour une seule session SSH, utilisez cette

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user@Host
5
Quanlong

Avez-vous essayé de désactiver StrictHostKeyChecking? Vous pouvez le faire avec l'option -o ou dans le fichier de configuration ~/.ssh/config.

2
jneves

J'ai trouvé les entrées .ssh/config suivantes utiles (LAN avec DHCP et DNS):

 CheckHostIP no

 Host *.*
 CheckHostIP yes

Le résultat est que les noms de machines locales "zora" ou "goron" ne seront pas comparés aux adresses IP attribuées de manière dynamique, mais www.monentreprise.com ou node42.planetlab.com verront toujours leurs adresses IP statiques confirmées.

0
sylvainulg