Galbūt gana neįprasta situacija, bet noriu nurodyti privatų SSH raktą, kuris būtų naudojamas vykdant apvalkalo (git) komandą iš vietinio kompiuterio.
Iš esmės taip:
git clone [email protected]:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
Arba dar geriau (Ruby kalba):
with_key("/home/christoffer/ssh_keys/theuser") do
sh("git clone [email protected]:TheUser/TheProject.git")
end
Esu matęs pavyzdžių, kaip prisijungti prie nutolusio serverio naudojant Net::SSH, kuriame naudojamas nurodytas privatus raktas, tačiau tai yra vietinė komanda. Ar tai įmanoma?
Turėtų veikti kažkas panašaus į tai (pasiūlė orip):
ssh-agent bash -c 'ssh-add /somewhere/yourkey; git clone [email protected]:user/project.git'
jei pageidaujate subkorpusų, galite pabandyti toliau nurodytą variantą (nors jis yra trapesnis):
ssh-agent $(ssh-add /somewhere/yourkey; git clone [email protected]:user/project.git)
Git iškvies SSH, kuri pagal aplinkos kintamąjį suras savo agentą; šis savo ruožtu turės įkeltą raktą.
Kaip alternatyva gali būti ir HOME
nustatymas, jei esate pasiruošę kaip HOME
nustatyti katalogą, kuriame yra tik .ssh
katalogas; jame gali būti arba identity.pub, arba konfigūracijos failas, nustatantis IdentityFile.
Galite naudoti GIT_SSH aplinkos kintamąjį. Tačiau jums reikės ssh ir parinktis įtraukti į apvalkalo scenarijų.
Žr. git vadovą: gitaros instrukciją: man git
savo komandų apvalkale.