1

我正在尝试找到一种方法来使用不同的 ssh 密钥从 bitbucket 克隆不同的项目。我尝试使用 ssh_config 但我设法为单个特定主机连接定义了一个不同的 ssh 密钥。

我想要实现的是拥有

bitbucket.org/myteam1/myproject的密钥 A

bitbucket.org/myteam2/myotherproject 的密钥 B

可以帮我解决这个问题吗?

4

3 回答 3

2

最后我发现对我来说最好的解决方案是使用该-e sshcommand选项并在其中-i key指定我想要的私钥的选项。

于 2012-12-27T00:30:07.900 回答
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/myprojectssh 之类的假主机名克隆或推送 URL 时,将交换真实主机名和正确的密钥。

但实际上,只是使用ssh-agent

于 2012-11-13T01:20:18.780 回答
0

您可以在存储库 hgrc 级别覆盖您的密钥

请参阅Mercurial 的配置文件

于 2012-11-12T22:57:11.537 回答