Fonctionne comme prévu, mais le résultat sera toujours le suivant: "Avertissement: Ajout permanent de 'hostname, ip' (RSA) à la liste des hôtes connus". J'ai fait ça partir avec: 2> & 1 | grep -v "^Warning: Permanently added"
Guillaume Boudreau
3
add -o "LogLevel ERROR" et il ne se plaindra plus d'avertissements
John,
1
Remarque: une demande de suppression de ce message "Avertissement: Ajout permanent de 'nom d'hôte, ip' (RSA) à la liste des hôtes connus". a été signalé aux mainteneurs: bugzilla.mindrot.org/show_bug.cgi?id=2413
Ben Creasy
2
La tuyauterie à grepfusionner stdout et stderr; aussi le statut de sortie peut changer. En cas d' utilisation bash, il sera préférable d'utiliser la substitution de processus pour se débarrasser du message: ssh 2> >( egrep >&2 -v '^Warning: Permanently added') -o "UserKnownHostsFile /dev/null" [...]. Cela évitera le tuyau et donc les changements correspondants dans la gestion du statut de sortie.
Alex O
1
@ John Il est préférable d'utiliser l'une des autres méthodes dans ces commentaires, sinon vous introduisez une faille de sécurité en raison du potentiel de masquage d'autres avertissements non liés
Jon Bentley
99
Si vous voulez ce comportement parce que vous travaillez avec des serveurs de 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 d’options à la place. 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 hôte que possible pour être sécurisé.
Régler le LogLevel sur QUIET gardera l’Avertissement mentionné par Guillaume de ne pas apparaître
Vous devriez vraiment essayer de ne pas désactiver complètement StrictHostKeyChecking. La réponse de cclark est donc un excellent compromis pour travailler avec des serveurs cloud.
Alex Recarey
Cela m’a beaucoup aidé à utiliser Shipit (un outil de déploiement de JavaScript) contre Vagrant. Je ne pouvais pas facilement obtenir les paramètres que Shipit transmettait à SSH, ce qui m'a permis de contourner l'outil et de lui dire ce que je faisais et que je ne voulais pas qu'il se souvienne.
John Munsch
1
LogLevel est ce que je cherchais. Il présente l’avantage supplémentaire de ne pas afficher la notification configurée par la société lors de l’exécution de scripts! (Je cours maintenant avec loglevel ERROR)
Anshu Prateek
Dans quel fichier est-ce que j'ajoute ceci?
Wim Deblauwe
Ceci est votre fichier de configuration SSH. Sous Linux ou macOS, le fichier se trouverait généralement dans un répertoire appelé .ssh de votre répertoire personnel, nommé config - ~ / .ssh / config
cclark
8
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 d'hôte restent cohérentes entre les ordinateurs desservant le même nom d'hôte), puis d'activer StrictHostKeyChecking, de désactiver CheckHostIP et de 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 par MITM.
vous devriez pouvoir faire confiance à vos connexions SSH, à mon humble avis. Ne vous contentez pas de faire taire vos risques.
Sylvainulg
3
Cela dépend vraiment. Nous avons des environnements de développement qui sont détruits chaque semaine et reconstruits, leurs enregistrements A restent les mêmes mais leur clé d’hôte est générée chaque fois qu’elle est construite. Nous ne pouvons pas conserver les clés de l'hôte, car l'enregistrement A est défini dans une base de données basée sur un nom d'environnement et les noms d'environnement peuvent être supprimés ou de nouveaux noms créés à tout moment. La solution de contournement ci-dessus est donc réellement utile.
Alex Berry
2
Avez-vous essayé de désactiver StrictHostKeyChecking? Vous pouvez le faire avec l' -ooption ou dans le fichier de configuration ~/.ssh/config.
J'utilise déjà ça. Mais cela a un effet différent: cela réduit la rigueur de la vérification de la clé de l'hôte. Par exemple, lorsque l'hôte est inconnu, il se connecte toujours lorsque vous désactivez cette option. Ainsi, il enregistre toujours l'hôte. Mais je pense avoir trouvé la bonne solution (voir ma réponse).
Albert
0
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.mycompany.com ou node42.planetlab.com verront toujours leurs adresses IP statiques confirmées.
grep -v "^Warning: Permanently added"
grep
fusionner stdout et stderr; aussi le statut de sortie peut changer. En cas d' utilisationbash
, il sera préférable d'utiliser la substitution de processus pour se débarrasser du message:ssh 2> >( egrep >&2 -v '^Warning: Permanently added') -o "UserKnownHostsFile /dev/null" [...]
. Cela évitera le tuyau et donc les changements correspondants dans la gestion du statut de sortie.Si vous voulez ce comportement parce que vous travaillez avec des serveurs de 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 d’options à la place. ligne de commande.
Pensez à ajouter quelque chose comme:
la source
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 d'hôte restent cohérentes entre les ordinateurs desservant le même nom d'hôte), puis d'activer StrictHostKeyChecking, de désactiver CheckHostIP et de 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:
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 par MITM.
la source
Pour une seule session SSH, utilisez cette
la source
je suggère
plus de
de sorte que vous obtenez toujours "Impossible de résoudre le nom d'hôte" et d'autres erreurs de ce type
la source
Avez-vous essayé de désactiver
StrictHostKeyChecking
? Vous pouvez le faire avec l'-o
option ou dans le fichier de configuration~/.ssh/config
.la source
J'ai trouvé les entrées .ssh / config suivantes utiles (LAN avec DHCP et DNS):
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.mycompany.com ou node42.planetlab.com verront toujours leurs adresses IP statiques confirmées.
la source