Как да задам частния SSH ключ, който да се използва при изпълнение на shell команда в Git?
Може би е доста необичайна ситуация, но искам да задам частен SSH ключ, който да се използва при изпълнение на шел (git) команда от локалния компютър.
В общи линии това е следното:
git clone git@github.com:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
Или още по-добре (на Ruby):
with_key("/home/christoffer/ssh_keys/theuser") do
sh("git clone git@github.com:TheUser/TheProject.git")
end
Виждал съм примери за свързване към отдалечен сървър с Net::SSH, който използва определен частен ключ, но това е локална команда. Възможно ли е това?
954
3
Нещо подобно би трябвало да работи (предложено от orip):
Ако предпочитате подкорпуси, можете да опитате следното (макар че е по-нестабилно):
Git ще извика SSH, който ще намери своя агент чрез променливата на средата; той на свой ред ще има зареден ключ.
Алтернативно, задаването на
HOME
също може да свърши работа, при условие че сте готови да настроите директория, която съдържа само директория.ssh
катоHOME
; тя може да съдържа или identity.pub, или конфигурационен файл, задаващ IdentityFile.Съдържание на my_git_ssh_wrapper:
След това можете да използвате ключа, като направите:
Можете да използвате променливата на средата GIT_SSH. Но ще трябва да обхванете ssh и опциите в шел скрипт.
Вижте ръководството на git:
man git
в командния шел.