可能是一种相当不寻常的情况,但我想指定一个私有 SSH 密钥,以便在git从本地计算机执行 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我已经看到使用指定私钥连接到远程服务器的示例,但这是一个本地命令。可能吗?
Net::SSH
这些解决方案都不适合我。
相反,我详细说明了@Martin v. Löwis 提到config为 SSH 设置文件。
config
SSH 将查找用户的~/.ssh/config文件。我的设置为:
~/.ssh/config
Host gitserv Hostname remote.server.com IdentityFile ~/.ssh/id_rsa.github IdentitiesOnly yes # see NOTES below
我添加了一个远程 git 存储库:
git remote add origin git@gitserv:myrepo.git
然后 git 命令对我来说正常工作。
git push -v origin master
笔记
IdentitiesOnly yes
~/.ssh/id_rsa
~/.ssh/id_rsa.github