Det är kanske en ganska ovanlig situation, men jag vill ange en privat SSH-nyckel som ska användas när jag utför ett skalkommando (git) från den lokala datorn.
I princip så här:
git clone [email protected]:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
Eller ännu bättre (i Ruby):
with_key("/home/christoffer/ssh_keys/theuser") do
sh("git clone [email protected]:TheUser/TheProject.git")
end
Jag har sett exempel på hur man ansluter till en fjärrserver med Net::SSH som använder en angiven privat nyckel, men det här är ett lokalt kommando. Är det möjligt?
Något liknande bör fungera (föreslaget av orip):
ssh-agent bash -c 'ssh-add /somewhere/yourkey; git clone [email protected]:user/project.git'
Om du föredrar subshells kan du prova följande (även om det är mer bräckligt):
ssh-agent $(ssh-add /somewhere/yourkey; git clone [email protected]:user/project.git)
Git anropar SSH som hittar sin agent via miljövariabeln, som i sin tur har nyckeln inläst.
Alternativt kan inställningen HOME
också göra susen, förutsatt att du är villig att ställa in en katalog som endast innehåller en .ssh
-katalog som HOME
; denna kan antingen innehålla en identity.pub eller en config file som ställer in IdentityFile.