也许是一个相当不寻常的情况,但我想指定一个私有SSH密钥,以便在从本地计算机执行shell(git)命令时使用.
基本上是这样的:
git clone git@github.com:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
Run Code Online (Sandbox Code Playgroud)
甚至更好(在Ruby中):
with_key("/home/christoffer/ssh_keys/theuser") do
sh("git clone git@github.com:TheUser/TheProject.git")
end
Run Code Online (Sandbox Code Playgroud)
我见过使用Net :: SSH连接到远程服务器的示例,它使用指定的私钥,但这是一个本地命令.可能吗?
我已经在我的闪存驱动器上成功安装并配置了msysGit Portable,并使用它来拉动和推送GitHub repos.但是,我似乎总是不得不克服SSH支持.
具体来说,为了让SSH找到我的密钥文件,每次运行git-bash.bat时,我都必须按照这些说明启动第二个实例,ssh-agent然后启动ssh-add我的密钥.
使用ssh -v git@github.com调试的输出我看到msysGit默认使用我的Windows用户目录来查找键.它不能那样做; 我需要它在便携式驱动器上查看自己的目录.
如何强制$ HOME成为程序自己的文件夹?
此页面中的说明与我最初发布的现已断开的链接类似.引用如下.这里也是原始Vox文章的webarchive.
但是,如果你尝试这个并得到:
Run Code Online (Sandbox Code Playgroud)% ssh-add Could not open a connection to your authentication agent.然后你的会话没有在ssh-agent下运行.您可以通过运行以下命令在代理下重新启动新shell来解决此问题:
Run Code Online (Sandbox Code Playgroud)exec ssh-agent bash在哪里可以用你选择的shell替换bash.执行此操作后,您应该能够运行ssh-add来加载该shell的密钥.