Несколько аккаунтов в Bitbucket
Bitbucket — это один из популярных облачных сервисов для управления репозиториями кода Git. Все свои приватные проекты я храню на Bitbucket, а публичные — на GitHub.
Допустим, у вас есть рабочий аккаунт в BitBucket и свой личный, два отдельных аккаунта.
Чтобы подключаться к нескольким аккаунтам Битбакета нужны различные настройки под каждый аккаунт на репозиторий. Самый надёжный способ настройки — через SSH ключи. Ключ добавляется в профиле BitBucket.
И всё бы ничего, но BitBucket запретил добавлять один и тот же публичный ключ в разные профили. Вы не сможете привязать один SSH ключ в оба аккаунта, Bitbucket выдаст ошибку.
Поэтому нужно сгенерировать ключ под каждый из профилей и привязать отдельно.
SmartGit
Я использую SmartGit для управления Git репозиториями. Это графическая оболочка для Git. У меня получается просматривать изменения, решать конфликты, заливать код быстрее и удобнее в SmartGit, чем в консоли или в встроенных средствах PhpStorm.
Для своей работы он использует стандартную команду git
для всех операций с репозиторием, а она в свою очередь использует стандартную команду ssh
для работы с репозиториями, подключенными по SSH.
SmartGit => git => ssh
Для всех репозиториев по умолчанию выбирается SSH-ключ из профиля пользователя, C:\Users\<CoolUser>\.ssh\id_rsa
Но мне нужно, чтобы для некоторых репозиториев использовался другой SSH-ключ, не дефолтный а тот что я сгенерировал и привязал в аккаунте битбакета.
Для тех кто не использует SmartGit эта инструкция тоже может быть полезна, потому что мы настраиваем “базовое” окружение клиента Git. Поверх него будут работать все инструменты автоматизации команд Git, например модуль работы с Git в PhpStorm.
Вот как я это сделал.
1. Настраиваем доступ по SSH
-
Создаём ключ SSH
ssh-keygen -t rsa
Ввводим путь к приватному ключу:
/home/<cooluser>/.ssh/id_rsa_mycoolproject
Создано два файла:
/home/<cooluser>/.ssh/id_rsa_mycoolproject
/home/<cooluser>/.ssh/id_rsa_mycoolproject.pub
Первый файл это приватный ключ SSH, второй файл это публичный ключ SSH.
-
Вставляем публичный ключ в настройки аккаунта на Битбакете.
-
Переходим по этой ссылке https://bitbucket.org/account/settings/ssh-keys/
Или нажимаем аватарку в левом нижнем углу личного кабинета Bitbucket, а дальше выбираем “Personal settings” => “Security” => “SSH keys”.
2. Настраиваем локальный репозиторий
-
Клонируем репозиторий.
При клонировании по умолчанию будет использоваться SSH-ключ
/home/<cooluser>/.ssh/id_rsa
.Чтобы переключиться на сгенерированный ключ
id_rsa_mycoolproject
, устанавливаем переменную окружения в команде клонирования.GIT_SSH_COMMAND='ssh -i /home/<cooluser>/.ssh/id_rsa_mycoolproject -o IdentitiesOnly=yes' git clone git@bitbucket.org:mycoolproject/gc.git
-
Указываем ключ SSH для всех обращений к репозиторию.
-
Если мы работаем с git в Linux
В папке репозитория выполняем команду:
git config core.sshCommand "ssh -i /home/<cooluser>/.ssh/id_rsa_mycoolproject -o IdentitiesOnly=yes"
-
Если мы работаем с git в Windows
Копируем приватный ключ в
C:\Users\<CoolUser>\.ssh
В папке репозитория выполняем команду:
git config core.sshCommand "ssh -i C:\\Users\\<CoolUser>\\.ssh\\id_rsa_mycoolproject -o IdentitiesOnly=yes"
-
Настройка закончена. Теперь и консольная команда git, и сам SmartGit будут знать, какой ключ SSH использовать для нашего репозитория.