J'ai des boîtes cloud qui changent fréquemment leur IP.
J'utilise ssh le nom d'hôte, mais je dois modifier le fichier known_hosts à chaque lancement du serveur en raison de ce message d'erreur:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is…
Outre les risques de sécurité et ceux associés à ce que je veux faire, existe-t-il un moyen d'ignorer cette erreur ou d'écraser automatiquement le fichier known_hosts de sorte que je n'ai pas toujours à le modifier moi-même?
ssh
bash
known-hosts
fingerprint
coneybeare
la source
la source
Addition: vous pouvez essayer de désactiver uniquement la vérification CheckHostIP pour ce nom:
la source
Beaucoup de réponses ici fonctionneront - mais techniquement, ce sont des solutions de contournement. OpenSSH dispose déjà d' une fonctionnalité intégrée dans cet esprit:
HostKeyAlias
.Dans votre fichier .ssh / config, ajoutez
HostKeyAlias <alias>
à une configuration d'hôte:Avec cela en place, la connexion au serveur
myserver.example.com
n'utilisera pas le nom d'hôte ou l'adresse IP pour la référence locale - elle n'utilisera toujours que HostKeyAlias donné lors de la connexion à ce serveur. Pour moi, il est logique d'utiliser le nom d'hôte - mais vous pouvez bien sûr utiliser n'importe quel alias que vous aimez.Les configurations typiques pour moi pour les hôtes dynamiques sont comme ceci:
Cela peut également être utilisé dans certains scénarios obscurs où vous savez qu'un groupe de vos serveurs ont les mêmes clés d'hôte (généralement cela ne devrait pas être le cas). Cela empêcherait alors les entrées en double. À l'avenir, si les clés changent légitimement, vous n'aurez pas à remplacer / supprimer plusieurs entrées. Seulement un. Les serveurs Gitlab Geo en sont un bon exemple.
En ce qui concerne la suppression du fichier known_hosts, je suggérerais de regarder d'autres questions / réponses spécifiquement liées à la maintenance / suppression des entrées périmées de unknown_hosts. Par exemple, voir Comment gérer mon fichier .ssh / known_hosts ; Je suis particulièrement impressionné par la réponse de user1953828, même si je vois qu'il n'a pas encore beaucoup de votes positifs. :)
la source
J'utilise ces options douteuses pour contourner ce problème. (La clé publique de mon hôte est régénérée assez souvent. Cela supprime donc l'IP et la vérification des clés)
Vous pouvez également simplement l'utiliser si la clé reste la même mais que l'IP change:
la source
Vous pouvez définir StrictHostKeyChecking = no dans votre ssh configuration de client (c'est-à-dire le fichier ~ / ssh / config sur la machine à partir de laquelle vous vous connectez) pour ignorer l'avertissement.
la source
Vous pouvez mettre
CheckHostIP no
dans votre~/.ssh/config
fichier, mais cela vous laisse ouvert à des attaques d'usurpation. Si cela ne vous inquiète pas, ce paramètre devrait désactiver laknown_hosts
vérification.la source
J'évite d'ajouter les empreintes digitales à mon
known_hosts
fichier lors de la connexion à des machines AWS transitoires. J'utilise une commande telle quepour se connecter à eux. Il ne vous demandera pas si vous souhaitez ajouter la machine «à la liste des hôtes connus». Remplacez
10.0.0.5
par l'adresse IP de votre machine etsecret.pem
par le chemin complet de votre clé Ssh. Vous recevrez toujours un avertissement indiquant que l'10.0.0.5
ajout a été ajouté, mais il a vraiment disparu/dev/null
. Je le fais assez souvent pour définir un alias dans mon~/.profile
Je réserve
ssh [email protected]
des commandes de type aux machines où je me suis donné la peine de vérifier l'empreinte digitale.la source
Faites connaître_hosts en lecture seule.
la source