SSH вошел как разные пользователи на одном хосте - PullRequest
0 голосов
/ 31 мая 2019

У меня есть 2 аккаунта BitBucket с разными ключами. Вот мой ~ / .ssh / config

Host company.bitbucket.org
  HostName bitbucket.org
  User company
  IdentityFile ~/.ssh/company

Host personal.bitbucket.org
  HostName bitbucket.org
  User personal
  IdentityFile ~/.ssh/personal

В моих репо:

[remote "origin"]
    url = company@bitbucket.org:companyworkspace/project1.git
[remote "origin"]
    url = personal@bitbucket.org:personal/project2.git

Когда я использую git fetch в каждом хранилище, иногда оно подключается правильно, иногда возвращается Forbidden.

После отладки я считаю странную вещь.

$ ssh -T company@bitbucket.org 
logged in as personal

$ ssh -T company@bitbucket.org 
logged in as company

$ ssh -T company@bitbucket.org 
logged in as personal

$ ssh -T somethingwrong@bitbucket.org 
logged in as personal

Может кто-нибудь объяснить, почему это происходит?

ОБНОВЛЕНИЕ: Я неправильно понял, что настроил ssh правильно, потому что я все еще могу подключить git. Вопрос о странном поведении, когда Git выбирает неправильный ключ. Однако, наконец, я решил, что домен в .git / config должен быть тем же, что и Host в .ssh / config.

Host company.bitbucket // This line should be same git config [...@company.bitbucket:...]
      HostName bitbucket.org
      User company
      IdentityFile ~/.ssh/company

1 Ответ

1 голос
/ 31 мая 2019

вам нужно отредактировать ваш git config

[remote "origin"]
url = git@personal.bitbucket.org:personal/repo.git

, а для другого замените пользователя и URL на компанию.

в конце добавьте это в ваш ssh config:

IdentitiesOnly=yes
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...