4

У меня есть две учетные записи на Bitbucket и SSH-ключ для каждой. Вот как выглядит мой ~/.ssh/config :

Host bitbucket.org
  User git
  IdentityFile ~/.ssh/bitbucket/account1

Host bitbucket.org
  User git
  IdenfityFile ~/.ssh/bitbucket/account2

Проблема в том, что агент SSH не может работать с двумя ключами для одного и того же хоста одновременно, и мне нужно удалить один из них, чтобы иметь возможность использовать другой.

Есть ли обходной путь?

2 ответа2

8

Судя по всему, Bitbucket имеет DNS-запись с подстановочным знаком; любой случайный поддомен (*.bitbucket.org) будет преобразован в тот же сервер (ы), что и bitbucket.org .

$ host bitbucket.org
bitbucket.org has address 207.223.240.182
bitbucket.org has address 207.223.240.181
$ host random.bitbucket.org
bitbucket.org has address 207.223.240.182
bitbucket.org has address 207.223.240.181
$ host clearlynotasubdomain.bitbucket.org
bitbucket.org has address 207.223.240.182
bitbucket.org has address 207.223.240.181

Из-за этого вы можете установить разные записи в ~/.ssh/config с разными именами хостов:

Host project1.bitbucket.org
  User git
  IdentityFile ~/.ssh/bitbucket/account1

Host project2.bitbucket.org
 User git
 IdenfityFile ~/.ssh/bitbucket/account2

На самом деле, я бы рискнул предположить, что Bitbucket имеет этот шаблон для этой конкретной цели.

7

Вы можете создать два отдельных псевдонима SSH, т.е.

Host bitbucket1
  Hostname bitbucket.org
  User git
  IdentityFile ~/.ssh/bitbucket/account1

Host bitbucket2
  Hostname bitbucket.org
  User git
  IdentityFile ~/.ssh/bitbucket/account2

Пока ваши IdentityFile не являются файлами по умолчанию (см. Мой вопрос здесь), вы можете использовать эти псевдонимы, чтобы выбрать, к какой учетной записи подключаться.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .