J'essaie de faire un git clone
creux d'un script bash, mais la première fois que j'exécute le script et le serveur n'est pas encore connu, le script échoue. J'ai quelque chose comme ça:
yes | git clone git@github.com:repo/repoo.git
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
Mais c'est ignorer le yes
. Savez-vous comment forcer git clone
à ajouter la clé aux hôtes connus?
echo yes | git clone [email protected]:repo/repoo.git
?echo yes
n'est pas une bonne approche: la deuxième fois que vous exécutez la commande, ssh ne vous demandera pas si vous souhaitez continuer car la clé du serveur sera déjà connue.Réponses:
Ajoutez ce qui suit à votre
~/.ssh/config
fichier:Tout ce qui utilise le client open-ssh pour établir un shell distant (avec le client git le fait) devrait ignorer les vérifications de clés sur github.com.
C'est en fait une mauvaise idée car toute forme de saut des chèques (que vous frappiez automatiquement oui ou sautiez le chèque en premier lieu) crée de la place pour un homme dans le compromis de sécurité moyen. Une meilleure façon serait de récupérer et de valider l'empreinte digitale et de la stocker dans le
known_hosts
fichier avant de devoir exécuter un script qui se connecte automatiquement.la source
known_hosts
fichier avant .yes
sortiesy
. Besoins d'acceptation des clés RSAyes
. Vous pouvez essayeryes yes | git clone [email protected]:repo/repoo.git
donc lesyes
sortiesyes
au lieu dey
.la source
echo "yes" | ...
ne fonctionne pas. Je pense qu'ilgit
n'accepte pas la tuyauterie. Peut-être seulement dans une version?L'exécution
ssh-keyscan -H github.com >> ~/.ssh/known_hosts
avant le clonage ajoutera la clé et empêchera l'invite d'apparaître.Bien sûr, cette approche est également vulnérable à une attaque MITM.
la source
J'ai rencontré ce problème auparavant. Bien que ce soit sur une machine Windows, nous avons dû utiliser ssh pour nous connecter à un hôte distant. Nous avons rencontré le même problème que la première connexion échouait toujours car elle ne reconnaissait pas les clés.
Je l'ai résolu en me connectant manuellement et en trouvant la clé de registre et en l'important au début du script. Sous Linux, ce devrait être la même idée générale: vous voulez ajouter ce serveur à une liste d'hôtes de confiance afin que ssh ne vous demande pas si vous lui faites confiance à chaque fois.
Une fois que vous vous connectez manuellement, recherchez le fichier de clé et ajoutez-le à votre fichier known_hosts. De cette façon, ssh examinera ce fichier, supposera que vous savez ce que vous faites et continuera sans vous poser de questions sur l'empreinte digitale.
la source