Każdy potrafi sklonować repozytorium z GitHuba przez HTTPS. Po czym jednak poznać prawdziwego master-developera? Autoryzuje się za pomocą klucza SSH! Oczywiście trochę żartuję, jednak jest to umiejętność, którą warto poznać, znać i stosować. Przemawiają za tym choćby względy bezpieczeństwa – nigdzie nie musimy podawać loginu i hasła do konta na GitHub.
Generowanie klucza SSH
W zależności od systemu operacyjnego i użytego narzędzie, generowanie klucza może się nieznacznie różnić.
Windows
Jeśli korzystamy z Windowsa, można to zrobić za pomocą PuTTygena. Alternatywnie można skorzystać np. z GitBash – co zaraz pokażę. Jeśli jesteś aktywnym developerem, masz go prawdopodobnie zainstalowanego na swoim PC.
Przejdźmy więc do swojego katalogu użytkownika, utwórzmy w nim nowy katalog .ssh i wejdźmy do niego.
1 2 3 | cd C:\Users\michal mkdir .ssh cd .ssh |
Następnie wpiszemy komendę:
1 | ssh-keygen.exe |
Odpali ona niewielki kreator klucza.
- Najpierw pojawi się pytanie, w jakim pliku zapisać nowy klucz. Jeśli podpowiedź się zgadza, można zatwierdzić opcję.
- Kolejno podać należy hasło do zaszyfrowania klucza. Należy to zrobić dwa razy.
Po tych dwóch krokach klucz zostanie wygenerowany.

Generowanie klucza SSH w GitBash
Linux
Na Linuksie wystarczy użyć komendy:
1 | ssh-keygen |
Proces generowania wygląda identycznie z tym, który opisałem dla Windowsa.
Podłączanie klucza SSH do Github
W celu podłączenia klucza do GitHuba, przejdźmy do ustawień, do sekcji SSH and GPG keys. Dodajemy nowy klucz SSH i nadajemy mu nazwę oraz wklejamy wygenerowany wcześniej klucz publiczny.

Klucz SSH w GitHub
Klonowane repozytorium przez SSH
Przechodzimy teraz do miejsca, gdzie chcemy sklonować repozytorium i odpalamy poniższą komendę, gdzie zmieniamy nazwę użytkownika (michalkortas) i nazwę repozytorium (private-repo) na własną.
1 | git clone git@github.com:michalkortas/private-repo.git |
Podajemy hasło użyte podczas generowania klucza SSH. Po zatwierdzeniu poprawnego hasła, repozytorium zostanie sklonowane.

Klonowanie repozytorium przez SSH
Jeśli podejrzymy klucze dodane do GitHuba, można zobaczyć ostatnią aktywność każdego z nich.

Ostatnia aktywność klucza SHH na GitHub
Korzystacie z SSH, HTTPS, a może używacie już nowego GitHub CLI? Nie miałem jeszcze osobiście okazji przetestować tej ostatniej opcji, ale zapewne niedługo to zrobię.
Tagi: Autoryzacja • github • ssh