Détails
Comment spécifier la clé SSH privée à utiliser lors de l'exécution d'une commande shell sur Git ?
Une situation plutôt inhabituelle peut-être, mais je veux spécifier une clé SSH privée à utiliser lors de l'exécution d'une commande shell (git) depuis l'ordinateur local.
En gros, c'est comme ça :
git clone git@github.com:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
Ou encore mieux (en Ruby) :
with_key("/home/christoffer/ssh_keys/theuser") do
sh("git clone git@github.com:TheUser/TheProject.git")
end
J'ai vu des exemples de connexion à un serveur distant avec Net::SSH qui utilise une clé privée spécifiée, mais ceci est une commande locale. Est-ce possible ?
954
3
Quelque chose comme ceci devrait fonctionner (suggéré par orip) :
si vous préférez les subshells, vous pouvez essayer ce qui suit (bien que ce soit plus fragile) :
Git invoquera SSH qui trouvera son agent par variable d'environnement ; celui-ci aura, à son tour, la clé chargée.
Alternativement, définir
HOME
peut aussi faire l'affaire, à condition que vous soyez prêt à configurer un répertoire qui ne contient qu'un répertoire.ssh
en tant queHOME
; celui-ci peut contenir soit un identity.pub, soit un [fichier de configuration][1] définissant IdentityFile.[1] : http://linux.die.net/man/5/ssh_config
Contenu de mon_git_ssh_wrapper :
Ensuite, vous pouvez utiliser la clé en faisant :
Vous pouvez utiliser la variable d'environnement GIT_SSH. Mais vous devrez intégrer ssh et les options dans un script shell.
Voir le manuel git :
man git
dans votre shell de commande.