5

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

[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
4

2 回答 2

8

在你的~/.ssh/config,添加

Host someserver.com
IdentityFile ~/.ssh/id_rsa

Host otherserver.com
IdentityFile ~/.ssh/otherid_rsa

以及任何人(包括hg交互使用)ssh用于连接主机someserver.comotherserver.com将使用指定的身份文件。

请参阅ssh_config其他选项。

于 2011-01-29T05:10:28.430 回答
3

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

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

然后,您根本不需要 ssh 在您.hgrc[ui]部分中识别相关的任何内容。

或者,您可以这样做:

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

但是 ssh-agent 在很多方面都很有用,值得把它放在你的登录脚本中,然后一天就结束。

于 2011-01-29T03:49:38.610 回答