Różne klucze SSH do jednego serwisu repozytoriów

Korzystając z wielu kluczy SSH do autoryzacji w Githubie/Bitbuckecie/Gitlabie możemy napotkać pewien problem - co jeśli mam dwa konta oraz chcemy korzystać z dwóch różnych kluczy SSH? Na szczęście jest na to, dość proste, rozwiązanie. :-)
Tym rozwiązaniem jest odpowiednio skonfigurowanie SSH - dzięki temu dla określonego adresu (“wymyślonego” przez nas) klient SSH oraz Git będzie korzystał z innego klucza.
W moim przypadku potrzebuję korzystać z dwóch kluczy do Bitbucketa - jednego prywatnego oraz drugiego pracowego.
Skonfigurujmy więc SSH następująco: dla prywatnych projektów nic się nie zmienia, natomiast dla projektów
firmowych będziemy korzystali z aliasu work.bitbucket.org
(zamiast bitbucket.org
). Dodajmy w pliku
~/.ssh/config/
następującą konfiguracje (zakładając, że prywatny klucz znajduję się w ~/.ssh/id_rsa
a firmowy w ~/.ssh/work
:
# ~/.ssh/config
Host bitbucket.org
Hostname bitbucket.org
IdentityFile ~/.ssh/id_rsa
Host work.bitbucket.org
Hostname bitbucket.org
IdentityFile ~/.ssh/work
Teraz wystarczy już odpowiednio sklonować repozytorium - zamiast bitbucket.org
będziemy wykorzystywać work.bitbucket.org
. Czyli nasza komenda do klonowania będzie wyglądać następująco:
git clone git@work.bitbucket.org:workGroup/project.git
I tyle - kolejne wywołania komend Gita w tym repozytorium będą wykorzystywały firmowy klucz SSH. Gdy będziemy chcieli sklonować repozytorium prywatnie - pomijamy przedrostek “work”.
comments powered by Disqus