MyTetra Share
Делитесь знаниями!
Использовать несколько GitHub аккаунтов на одной машине
Время создания: 11.11.2019 19:20
Автор: br0ke
Текстовые метки: git, github, ssh, keys, account, accounts, multiple
Раздел: Информационные технологии - Git

У человека есть два аккаунта на GitHub -- личный и рабочий. GitHub не позволяет загрузить один и тот же ключ SSH в разные аккаунты, а использовать HTTPS и всегда вводить логин/пароль неудобно. Это проблема.


1. Определиться, как из аккаунтов будет основным, а какой "вторичным". Тот аккаунт, где планируется часто клонировать репозитории должен быть основным аккаунтом, его SSH-ключи будут использоваться по умолчанию. Для клонирования репозитория от лица "вторичного" аккаунта придётся применять некоторый хак. Допустим, что личный аккаунт будет основным, а рабочий -- вторичным.


2. Генерируем новые SSH-ключи для для рабочего аккаунта, используя рабочую почту:


ssh-keygen -t rsa -b 4096 -C "andrey.semakin@incountry.com"


Когда утилита ssh-keygen спросит куда сохранить ключи, нужно ввести новый путь, например:


~/.ssh/work_id_rsa


3. Загружаем содержимое ~/.ssh/work_id_rsa.pub на GitHub: https://github.com/settings/keys


4. Создаём файл ~/.ssh/config со следующим содержимым:


# https://stackoverflow.com/a/11251797/10650942

Host incountry.github.com

Hostname github.com

IdentityFile ~/.ssh/work_id_rsa

IdentitiesOnly yes


5. Устанавливаем разрешения на файл:


chmod 600 ~/.ssh/config


6. Клонируем репозиторий по SSH. Нужно заменить github.com на то, что записано в файл в пункте 4:


git clone git@incountry.github.com:incountry/incutils.git


7. Успех! Git использует SSH-ключи "вторичного" аккаунта, а не основного, таким образом, можно скачивать приватные репозитории.


8. Если репозиторий уже склонирован используя другой способ (например, HTTPS), то его можно обновить:


git remote set-url origin git@incountry.github.com:incountry/incutils.git

git remote set-url --push origin git@incountry.github.com:incountry/incutils.git


9. Не забудьте сменить имя и адрес электронной почты на рабочие:


git config --local user.name "Andrey Semakin"

git config --local user.email "andrey.semakin@incountry.com"


Так же в этом разделе:
 
MyTetra Share v.0.53
Яндекс индекс цитирования