Публікація

Як використовувати декілька SSH ключів для різних репозиторіїв GitHub

У мене виникла проблема, коли у мене є персональний і робочий аккаунти GitHub і мені потрібно робити пуши в різні репозиторії

Відкрити Terminal, перейти в ~/.ssh.

1
2
cd ~/.ssh
ls -la

Генеруємо два ключа: персональний id_rsa і робочий id_rsa_work. Якщо персональний ключ id_rsa вже присутній, можемо видалити його щоб згенерувати новий.

Команда для видалення ключа:

1
2
rm id_rsa
rm id_rsa.pub

Команда для генерації ключа:

1
ssh-keygen -t ed25519 -C "[email protected]"

Виконуємо інструкції, виконуємо команду два рази, щоб отримати id_rsa та id_rsa_work.

Створюємо конфіг ~/.ssh/config. Якщо на його місті присутня директорія, як було в моєму випадку, спочатку видаляємо директорію:

1
rm -Rf ~/.ssh/config

Створюємо конфіг:

1
nano ~/.ssh/config

 В конфіг додаємо наступну інформацію:

1
2
3
4
5
6
7
8
9
 Host github.com-personal
	HostName github.com
	User git
	IdentityFile ~/.ssh/id_rsa

Host github.com-work
	HostName github.com
	User git
	IdentityFile ~/.ssh/id_rsa_work

Зберігаємо, натиснувши Command+X (на маку) і Y.

Тепер нам потрібно налаштувати використання ключів для різних репозиторіїв.

Переходимо в персональний репозиторій cd ~/personal-github-repo і нам потрібно переналаштувати origin на використання хоста github.com-personal.

Виконуємо команду яка покаже поточний origin, в моєму випадку це [email protected]:jmas/personal-repo.git.

1
git remote get-url origin

Копіюємо адресу репозиторію, видаляємо та встановлюємо новий origin наступною командою, проте міняємо в адресі хост на github.com-personal:

1
2
git remote remote origin
git remote add origin `[email protected]:jmas/personal-repo.git`

Робимо теж саме для робочого репозиторія. На цьому конфігурацію завершено. В моєму випадку довелося видалити з налаштувань аккаунту Github попередній ключ і додати новий, щоб SSH авторизація запрацювала.

Публікація захищена ліцензією CC BY 4.0 .