Iespējams, diezgan neparasta situācija, bet es vēlos norādīt privātu SSH atslēgu, ko izmantot, izpildot čaulas (git) komandu no vietējā datora.
Būtībā šādi:
git clone [email protected]:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
Vai vēl labāk (Ruby valodā):
with_key("/home/christoffer/ssh_keys/theuser") do
sh("git clone [email protected]:TheUser/TheProject.git")
end
Esmu redzējis piemērus, kā pieslēgties attālam serverim ar Net::SSH, kas izmanto norādīto privāto atslēgu, bet šī ir lokāla komanda. Vai tas ir iespējams?
Kaut kas tamlīdzīgs būtu jādarbojas (ierosināja orip):
ssh-agent bash -c 'ssh-add /somewhere/yourkey; git clone [email protected]:user/project.git'
ja jums vairāk patīk apakšapvalki, varat izmēģināt šādu variantu (lai gan tas ir trauslāks):
ssh-agent $(ssh-add /somewhere/yourkey; git clone [email protected]:user/project.git)
Git izsauks SSH, kas pēc vides mainīgā atradīs savu aģentu; tam, savukārt, būs ielādēta atslēga.
Alternatīvi, iestatot HOME
, arī var izdarīt šo triku, ar nosacījumu, ka esat gatavs izveidot direktoriju, kurā kā HOME
ir tikai direktorija .ssh
; tajā var būt vai nu identity.pub, vai konfigurācijas fails, kas nosaka IdentityFile.
Varat izmantot GIT_SSH vides mainīgo. Bet jums būs nepieciešams ietvert ssh un opcijas čaulas skriptā.
Skatiet git rokasgrāmatu: Uzziniet, kas ir nepieciešams: man git
savā komandu čaulā.