Come specificare la chiave SSH privata da usare quando si eseguono comandi di shell su Git?
Una situazione piuttosto insolita forse, ma voglio specificare una chiave SSH privata da usare quando si esegue un comando di shell (git) dal computer locale.
Fondamentalmente come questo:
git clone git@github.com:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
O ancora meglio (in Ruby):
with_key("/home/christoffer/ssh_keys/theuser") do
sh("git clone git@github.com:TheUser/TheProject.git")
end
Ho visto esempi di connessione a un server remoto con Net::SSH che usa una chiave privata specificata, ma questo è un comando locale. È possibile?
954
3
Qualcosa del genere dovrebbe funzionare (suggerito da orip):
se preferite i subshell, potreste provare il seguente (anche se è più fragile):
Git invocherà SSH che troverà il suo agente per variabile d'ambiente; questo, a sua volta, avrà la chiave caricata.
In alternativa, l'impostazione di
HOME
può anche fare il trucco, purché si sia disposti a impostare una directory che contenga solo una directory.ssh
comeHOME
; questa può contenere un identity.pub, o un file di configurazione che imposta IdentityFile.Contenuto di my_git_ssh_wrapper:
Poi si può usare la chiave facendo:
Potresti usare la variabile d'ambiente GIT_SSH. Ma dovrai avvolgere ssh e le opzioni in uno script di shell.
Vedi il manuale di git:
man git
nella tua shell di comando.