我正在为我的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
答案 0 :(得分:8)
在~/.ssh/config
中,添加
Host someserver.com
IdentityFile ~/.ssh/id_rsa
Host otherserver.com
IdentityFile ~/.ssh/otherid_rsa
使用hg
连接到主机ssh
或someserver.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在很多方面都很有用,值得把它放到你的登录脚本并且每天调用它。