Załóżmy, że mamy kilka projektów na github.com, czy bitbucket.org i te projekty są na różnych kontach (osobisty, firmowym). W przypadku gdy chcemy skonfigurować klucze SSH dla autoryzacji podczas korzystania z gita pojawia się problem, ponieważ dla tej samej domeny będzie brany pierwszy klucz z rzędu. Co zrobić w takim przypadku, aby móc korzystać z różnych kluczy dla użytkowników w tej samej domenie?
Rozwiązanie:
- Na początek trzeba wygenerować parę kluczy. Tutaj jest opisane jak to zrobić. Warto trochę przemyśleć nazewnictwo kluczy np.: „id_rsa_username(.pub)” i dodatkowo dodać komentarz do klucza np z adresem domeny i kontem użytkownika, aby potem można było łatwo odnaleźć potrzebną parę kluczy.
- Kopiujemy publiczny klucz do naszego serwera (github.com, bitbucket.org, etc.)
- W pliku /home/user/.ssh/config (jeśli go nie ma to tworzymy) dodajemy takie linijki: (oczywiście uzupełniamy według naszych potrzeb)
#user1 account Host github.com-user1 HostName github.com User git IdentityFile ~/.ssh/id_rsa_user1 #user2 account Host github.com-user2 HostName github.com User git IdentityFile ~/.ssh/id_rsa_user2
- Z poziomu projektu sprawdzamy typ połączenia ze zdalnym repozytorium wpisując:
git remote -v
- I zmieniamy odpowiednio adres origina zgodnie z nazwą hosta jaką skonfigurowaliśmy w pliku config:
git remote set-url origin git@github.com-user1:user1/your-repo-name.git
Od teraz git powinien już wiedzieć gdzie push`ować i skąd fetch`ować nasze zmiany 🙂