У меня есть 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