J'essaye de courir git clone
sans ssh vérifiant la clé de l'hôte du référentiel. Je peux le faire à partir de ssh comme ça:
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@host
Existe-t-il un moyen de transmettre les mêmes options ssh à la commande git clone?
Modifier: il existe une restriction que je ne peux pas modifier ~/.ssh/config
ni aucun autre fichier sur cette machine.
Réponses:
Ajoutez-les à votre
~/.ssh/config
:L'
Host
entrée correspond à ce que vous spécifierez sur la ligne de commande et leHostName
est le vrai nom d'hôte. Ils peuvent être identiques ou l'Host
entrée peut être un alias. L'User
entrée est utilisée si vous ne spécifiez pasuser@
sur la ligne de commande.Si vous devez le configurer sur la ligne de commande, définissez la
GIT_SSH
variable d'environnement pour qu'elle pointe vers un script contenant vos options.la source
GIT_SSH
variable d'environnement.Le git 2.3 récemment publié prend en charge une nouvelle variable "GIT_SSH_COMMAND" qui peut être utilisée pour définir une commande AVEC des paramètres.
la source
git clone
ou le code est-il correct?Une autre option permettant de spécifier différentes clés est
git config core.sshCommand
avec git 2.10 + (Q3 2016).Ceci est une alternative à la variable d'environnement décrite dans la réponse de Boris )
Voir commit 3c8ede3 (26 juin 2016) par Nguyễn Thái Ngọc Duy (
pclouds
) .(Merged by Junio C Hamano -
gitster
- in commit dc21164 , 19 juil.2016 )Cela signifie que le
git clone
peut être:Si vous souhaitez appliquer cela à tous les dépôts , comme l' ajoute user1300959 dans les commentaires , vous utiliserez une configuration globale.
la source
git clone
- dans ce cas, vous voudrez peut-être configurer la commande git ssh globalement:git config --global core.sshCommand ...
Voici un exemple délicat comment passer les arguments ssh en utilisant la variable GIT_SSH:
Remarque: les lignes ci-dessus sont des lignes de commande de terminal que vous devez coller dans votre terminal. Il créera un fichier ssh , le rendra exécutable et l'exécutera.
Si vous souhaitez passer l'option de clé privée, veuillez vérifier Comment dire à git quelle clé privée utiliser? .
la source
$*
et"$@"
semblent fonctionner. Normalement j'utilise"$@"
, puisque l'autre semble obsolète. Y a-t-il une raison de préférer$*
dans ce cas?Configuration au niveau du référentiel sans impact sur les paramètres au niveau du système
En consolidant les réponses déjà disponibles, je choisis les étapes ci-dessous. Cela garantit que les modifications de configuration n'ont pas d'impact au niveau de la machine, mais uniquement pour le référentiel sur lequel travailler. Cela est nécessaire dans mon cas car mon script doit être exécuté sur un agent Bamboo partagé.
1.Clonez le référentiel en adoptant l'
GIT_SSH_COMMAND
approche.2.Une fois cloné, accédez au répertoire du référentiel.
3.Définissez la
core.sshCommand
configuration afin que tous les appels futurs puissent être simplement exécutés avec des commandes git comme d'habitude, mais en utilisant en interne les options git fournies.la source
core.sshCommand
, que j'ai mentionné ci-dessus. J'ai voté pour.Je pense que mettre à jour git vers une version> = 2.3 et utiliser
GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git clone user@host
est l'option de pari, mais si ce n'est pas possible, @ josh-lee a donné une bonne option, mais s'il vous plaît, mettez à jour votre réponse en indentant le fichier de configuration ssh.la source
Ce problème a été résolu en suivant les étapes de la machine Windows: -
Créez un fichier de configuration dans le dossier C: \ Users \ username.ssh.
ajoutez la ligne suivante à un fichier de configuration.
puis réessayez.
la source