如何为单个hg存储库设置多个ssh标识?

时间:2011-01-28 21:37:33

标签: mercurial ssh public-key

我正在为我的mercurial存储库使用ssh publickey身份验证。所以我有:

[ui]
ssh = ssh -i ~/.ssh/id_rsa -C 

在我的.hgrc中。这很好,并允许我推/拉到ssh认证的回购。但是,我希望能够推/拉到需要不同身份的另一个回购。如何配置我的.hgrc文件,以便将标识绑定到特定路径。我想我想要的东西是:

[ui]
one.prefix = someserver.com
one.ssh = ssh -i ~/.ssh/id_rsa -C
two.prefix = otherserver.com
two.ssh = ssh -i ~/.ssh/otherid_rsa -C

2 个答案:

答案 0 :(得分:8)

~/.ssh/config中,添加

Host someserver.com
IdentityFile ~/.ssh/id_rsa

Host otherserver.com
IdentityFile ~/.ssh/otherid_rsa

使用hg连接到主机sshsomeserver.com的任何人(包括otherserver.com和互动使用)都将使用指定的身份文件。

有关其他选项,请参阅ssh_config

答案 1 :(得分:3)

您可以使用ssh自己的工具:ssh-agent。

$ eval $(ssh-agent)
$ ssh-add ~/.ssh/id_rsa
$ ssh-add ~/.ssh/otherid_rsa

然后,您根本不需要在.hgrc的{​​{1}}部分中识别相关内容。

或者你可以这样做:

[ui]

但是ssh-agent在很多方面都很有用,值得把它放到你的登录脚本并且每天调用它。