我试图找到一种方法来使用不同的ssh密钥从bitbucket克隆不同的项目。我尝试使用ssh_config,但我设法为单个特定主机的连接定义了一个不同的ssh密钥 。
我想要实现的目标是
bitbucket.org/myteam1/myproject的键A
和
bitbucket.org/myteam2/myotherproject键B
可以帮我解决这个问题吗?
答案 0 :(得分:2)
最后我发现对我来说最好的解决方案是使用-e sshcommand
选项,并在其中-i key
选项指定我想要的私钥。
答案 1 :(得分:1)
远离最简单的方法来使用ssh-agent。当你运行ssh-agent时,你可以添加所有密钥,然后尝试每个密钥直到一个工作。您的操作系统很可能已经在运行ssh-agent,请尝试
ssh-add /path/to/key1
ssh-add /path/to/key2
然后当你尝试连接时,如果你正在使用任何一个密钥。如果你没有运行ssh-agent,你可以在(在unix / OS X上)启动它:
eval $(ssh-agent)
然后添加两个密钥文件。
如果由于某种原因你不能忍受使用ssh-agent,那么我找到了一个使用稍微棘手的.ssh/config
文件的解决方法。像这样:
Host myteam1.bitbucket.org
Hostname bitbucket.org
HostKeyAlias bitbucket.org
IdentityFile ~/.ssh/keyA
Host myteam2.bitbucket.org
Hostname bitbucket.org
HostKeyAlias bitbucket.org
IdentityFile ~/.ssh/keyB
然后当您使用hg clone ssh://hg@myteam2.bitbucket.org/myteam2/myproject
等虚假主机名克隆或推送到URL时,ssh会交换真实主机名和右键。
但实际上,只需使用ssh-agent
。
答案 2 :(得分:0)
您可以覆盖存储库hgrc级别的密钥