Как использовать специальный ключ SSH для BitBucket и GitHub для push / pull? - PullRequest
8 голосов
/ 17 ноября 2011

У меня была Ubuntu 10.04 и недавно обновленная до 11.10.Перестали работать дополнительные ключи SSH.У меня есть ключи bitbucket и github, которые есть на сайтах.Как я могу сказать SSH использовать один конкретный ключ для Bitbucket и другой для GitHub?

Итак, у меня есть конфигурация:

Host bitbucket
HostName 207.223.240.182
User hg
IdentityFile ~/.ssh/bitbucket

Когда я вызываю ssh bitbucket, ssh успешно входит в системус ключом и выгоняют.Но когда я пытаюсь hg pull, я вижу "нет ответа от удаленного HG".и пароль не спрашивается.

Что можно сделать?

Ответы [ 2 ]

10 голосов
/ 17 ноября 2011

Для небольшого объяснения, почему конфиг, размещенный в вопросе, не работает, но ваш ответ делает:

Когда вы вызываете ssh bitbucket, ssh ищет в вашем конфигурационном файле хост с именем bitbucket, который определен с ключевым словом Host. Затем, используя ключевое слово HostName, вы можете определить реальное имя хоста для использования. В вашем случае вы определяете bitbucket как псевдоним для IP 207.233.240.182, который, как я полагаю, используется для bitbucket.org

Он не работал для ваших команд mercurial, потому что удаленный сервер, вероятно, определен как bitbucket.org, а не псевдоним bitbucket. После того, как вы изменили файл конфигурации на тот, который был предложен в вашем ответе, ssh может эффективно сопоставить удаленный сервер с именем хоста, и все в порядке!

К вашему сведению, вы также можете использовать подстановочный знак для сопоставления с образцом, например:

Host bitbucket.*
    HostName 207.223.240.182
    User hg
    IdentityFile ~/.ssh/bitbucket

Также будет работать, потому что при просмотре конфигурации SSH заменит * на что-нибудь еще.

1 голос
/ 17 ноября 2011

Я не очень старался! Ключ там сейчас. Решением было добавить .org к хосту:

Host bitbucket.org
User hg
IdentityFile ~/.ssh/bitbucket2
...