如何指定在Git上执行shell命令时使用的私有SSH密钥?

如何指定在Git上执行shell命令时使用的私有SSH密钥?

也许是一个相当不寻常的情况,但我想指定一个私有SSH密钥,以便在从本地计算机执行shell(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连接到远程服务器的示例,它使用指定的私钥,但这是一个本地命令。可能吗?


HUWWW
浏览 2251回答 3
3回答

缥缈止盈

这样的东西应该工作(由orip建议):ssh-agent bash -c 'ssh-add /somewhere/yourkey; git clone git@github.com:user/project.git'如果您更喜欢子壳,您可以尝试以下(虽然它更脆弱):ssh-agent $(ssh-add /somewhere/yourkey; git clone git@github.com:user/project.git)Git将调用SSH,它将通过环境变量找到它的代理; 反过来,这将加载密钥。另外,设置HOME也可以做的伎俩,只要你愿意建立一个仅包含一个目录.ssh的目录HOME; 这可能包含identity.pub或配置文件设置IdentityFile。
打开App,查看更多内容
随时随地看视频慕课网APP