Как настроить несколько идентификаторов SSH для одного репозитория HG? - PullRequest
5 голосов
/ 29 января 2011

Я использую аутентификацию ssh publickey для своего ртутного репозитория.Итак, у меня есть:

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

в моем .hgrc.Это прекрасно работает и позволяет мне делать push / pull в репозитории с 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 ]

8 голосов
/ 29 января 2011

В вашем ~/.ssh/config, добавьте

Host someserver.com
IdentityFile ~/.ssh/id_rsa

Host otherserver.com
IdentityFile ~/.ssh/otherid_rsa

и любой (включая hg и интерактивное использование), использующий ssh для подключения к хостам someserver.com или otherserver.com, будет использовать указанные файлы идентификации.

См. ssh_config для других опций.

3 голосов
/ 29 января 2011

Вы делаете это, используя собственный инструмент 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 полезен во многих отношениях, поэтому стоит добавить в него свои сценарии входа в систему и назвать его днем.

...