J'ai écrit ce petit script utilitaire:
for h in $SERVER_LIST; do ssh $h "uptime"; done
Lorsqu'un nouveau serveur est ajouté à $SERVER_LIST
, le script est arrêté avec:
The authenticity of host 'blah.blah.blah (10.10.10.10)' can't be established.
RSA key fingerprint is a4:d9:a4:d9:a4:d9a4:d9:a4:d9a4:d9a4:d9a4:d9a4:d9a4:d9.
Are you sure you want to continue connecting (yes/no)?
J'ai essayé yes
:
for h in $SERVER_LIST; do yes | ssh $h "uptime"; done
sans chance.
Existe-t-il un moyen de paramétrer ssh
pour accepter automatiquement toute nouvelle clé?
yes
génère "y", vous auriez peut-être eu plus de chance avecfor h in $SERVER_LIST; do yes yes | ssh $h "uptime"; done
(notez l'extra oui, qui dit oui quoi dire à la place de "y ").Réponses:
Utilisez l'option StrictHostKeyChecking, par exemple:
Cette option peut également être ajoutée à ~ / .ssh / config, par exemple:
Notez que lorsque les clés de l'hôte ont changé, vous recevez un avertissement, même avec cette option:
Si vos hôtes ne sont pas souvent réinstallés, vous pouvez rendre cette opération moins sécurisée (mais plus pratique pour les clés d’hôte souvent modifiées) avec cette
-oUserKnownHostsFile=/dev/null
option. Cela supprime toutes les clés d’hôte reçues afin qu’il ne génère jamais l’avertissement.Avec 18,04, il y a une nouvelle possibilité:
StrictHostKeyChecking=accept-new
. Deman 5 ssh_config
:la source
ssh-keyscan
est préférable, si elle est disponible sur votre système.ssh-keyscan
approche est plus saine. Pour les machines virtuelles locales et les autres hôtes des réseaux sécurisés avec des adresses IP dynamiques / réutilisées, l'approche décrite est suffisante.ssh-keyscan
solution n’est sujette à une attaque de type "man-in-the-middle"ssh-keyscan
. La-oStrictHostKeyChecking=no
solution est sujette à une attaque de type homme du milieu à chaquessh
exécution.Vous pouvez utiliser la commande suivante pour ajouter l'empreinte digitale d'un serveur à votre hôte connu.
REMARQUE: remplacez <adresse ip> et <nomhôte> par les noms IP et DNS du serveur que vous souhaitez ajouter.
Le seul problème avec ceci est que vous allez vous retrouver deux fois avec certains serveurs de votre unknown_hosts. Ce n'est pas vraiment un gros problème, juste mentionner. Pour vous assurer qu'il n'y a pas de doublons, vous pouvez d'abord supprimer tous les serveurs en lançant d'abord les éléments suivants:
Pour que vous puissiez courir:
Une chose à garder à l'esprit lorsque vous effectuez une suppression pour ajouter à nouveau, vous supprimez essentiellement la sécurité de la vérification de l'empreinte digitale. Donc, vous ne voudrez certainement pas exécuter ce script avant chaque exécution de votre script utilitaire.
la source
-H
hache les noms d’hôte et les adresses.Je suis un peu en retard avec cette réponse, mais la solution sensée serait de faire un scan ssh-keys sur la nouvelle machine avant de lancer la collecte de la disponibilité.
Désactiver le contrôle d'intégrité pour des raisons de commodité sonne comme un mauvais plan, même si vous pensez que vous maîtrisez totalement l'environnement.
la source
StrictHostKeyChecking no
Pour ajouter automatiquement une liste de serveurs, nous pouvons faire ci-dessous:
Ajouter des serveurs IP dans la liste de serveurs de fichiers
Les adresses IP doivent être ajoutées au format ci-dessous.
Sortie de
cat servers-list
Changez d'IP ci-dessus en remplaçant le vôtre.
La commande ci-dessous ajoutera tous les serveurs de la liste.
la source