Jeśli posiadasz kilka kont na GitLabie lub GitHubie (np. konto prywantne i konto firmowe) i każde z nich korzysta z różnych kluczy SSH (co jest dobrą praktyką), możesz dla każdego konta zdefiniować osobny zestaw parametrów uwierzytelniania, tak aby środowisko pracy automatycznie rozpoznawało, którego klucza SSH użyć w danym kontekście. W praktyce oznacza to, że operacje wykonywane na różnych repozytoriach – niezależnie od tego, czy należą do GitLaba, GitHuba czy innej platformy – będą korzystać z właściwych tożsamości bez konieczności ręcznego przełączania się pomiędzy kluczami. Tego rodzaju konfiguracja zapewnia stabilność procesu pracy, eliminuje konflikty związane z nieprawidłowym doborem kluczy i umożliwia płynne zarządzanie wieloma profilami deweloperskimi w jednym środowisku.
Konfiguracja domyślnych kluczy SSH
Aby ustawić domyślne klucze wykonaj następujące kroki:
1. Utwórz plik config (jeśli jeszcze nie istnieje) w folderze .ssh, który znajdziesz zazwyczaj w (ukrytym) podfolderze .ssh pod ścieżką:
Linux/Mac: %HOMEDRIVE%%HOMEPATH%/.ssh/ (np. u mnie jest to home/myusername/.ssh )
Windows: %USERPROFILE%/.ssh/ (np. u mnie jest to c:\users\myusername\.ssh )
Miej na uwadze, że ścieżka ta zależy od konfiguracji systemu.
2. W pliku config ustal nazwy i wskaż lokalizację poszczególnych kluczy
PreferredAuthentications – to wskazanie, że gitlab będzie korzystał z klucza publicznego, który musisz wkleić na swoim koncie na gitlabie tutaj: https://gitlab.com/-/user_settings/ssh_keys
IdentitiesOnly – wskazuje, że połączenie powinno używać tylko przypisanego w IdentityFile pliku jako metody uwierzytelniania.
IdentityFile – wskazuje ścieżkę do klucza SSH
Klonowanie repozytorium ze wskazaniem odpowiedniego klucza SSH
Aby sklonować repozytorium z gitlaba, musisz wskazać odpowiedni klucz SSH, aby jednoznacznie określić, która tożsamość powinna być wykorzystana do autoryzacji z repozytorium zdalnym.
Co zrobić w przypadku, kiedy masz już projekt postawiony lokalnie i potrzebujesz tylko dodać do niego ścieżkę do repozytorium zdalnego? Wtedy możesz uzyć takiej komendy:
Zauważ, że standardowy adres projektu to [email protected]:namespace/my-project-3.git, a w powyższym przykładzie zamieniliśmy nazwę hosta gitlab.com na work.gitlab.com
Analogicznie działają ustawienia w przypadku serwisu GitHub.
Teraz możesz robić commity przy wykorzystaniu różnych kluczy SSH dla różnych projektów 🙂
Author: Joanna
Piszę kody, które (zazwyczaj) działają. Tresuję Wordpressa, kodzę z Reactem, zgłębiam świat DevOps i klikam w konsoli Linuxa. Hobbystycznie optymalizuję kod, bo lenistwo to najczystsza forma produktywności. Staram się nie zwariować między bugiem a deadlinem.