Git jako najpopularniejszy rozproszony system kontroli wersji – może się pochwalić rozbudowanym zbiorem funkcjonalności oraz różnego rodzaju integracji – co pozwala wykorzystać go swobodnie w wielu codziennych zadaniach.
W ramach tego materiału dowiesz się, jak połączyć się z gitem korzystając z bezpiecznego połączenia SSH (ang. git ssh).
Spis treści
- 1 Git SSH – wprowadzenie
- 2 Git SSH
- 3 Git install – instalacja Git
- 4 Tworzenie pary kluczy SSH (ang. git generate ssh key)
- 5 Klucz publiczny i klucz prywatny (ang. git ssh key)
- 6 GitHub i klucz publiczny
- 7 Łączenie się z GitHub’em za pośrednictwem SSH
- 8 Git clone SSH
- 9 Git clone HTTPS
- 10 Git SSH Config
- 11 Git SSH – podsumowanie
- 12 20+ BONUSOWYCH materiałów z programowania
Git SSH – wprowadzenie
Z tego materiału dowiesz się:
- Co to jest SSH?
- Jak wykorzystać SSH do połączenia z Git?
- Jak połączyć się z GitHub za pomocą SSH?
Git SSH
SSH, znany również jako Secure Shell lub Secure Socket Shell, to protokół sieciowy, który zapewnia bezpieczny sposób uzyskiwania dostępu np. do zdalnego komputera lub serwera przez niezabezpieczoną sieć.
Istotne jest to, że takie połączenia są szyfrowane – dzięki czemu stosując SSH, zmniejszamy ryzyko tego, że nasze dane dostaną się w niepowołane ręce.
W ramach tego materiału zajmiemy się przede wszystkim integracją ze zdalnym repozytorium za pośrednictwem SSH i dowiemy się również, o tym czym jest i jak używać klucza SSH (ang. SSH Key) – natomiast jeżeli chcesz poznać bliżej samego Gita to kompletny tutorial Git znajdziesz poniżej.
➡ ZOBACZ 👉: Git tutorial | stash, rebase, commit, merge, checkout, push i clone
Git install – instalacja Git
Jeżeli nie masz jeszcze gita zainstalowanego lokalnie – szybko możesz to nadrobić.
W poniższym materiale znajdziesz instrukcję, jak można to zrobić.
➡ ZOBACZ 👉: Install Git – Instalacja Git, Windows, Ubuntu – Bash, GUI
Tworzenie pary kluczy SSH (ang. git generate ssh key)
Skoro ustaliliśmy już, czym jest protokół SSH, to teraz spróbujmy wykorzystać go do połączenia się z Git – i zrobimy to na przykładzie zdalnego repozytorium z GitHub.
Pierwszym krokiem w korzystaniu z autoryzacji SSH w GitHub jest wygenerowanie własnej pary kluczy (ang. SSH Key).
Być może masz już parę kluczy SSH na swoim komputerze.
Możesz to sprawdzić za pośrednictwem linii komend – przechodzimy do katalogu domowego użytkownika i podkatalogu .ssh, a następnie wyświetlamy jego zawartość.
cd ~/.ssh ls
Uwaga: komenda ls – działa na systemach typu Mac OS/Linux, a na Windows możemy wykorzystać komendę dir do wyświetlenia listy plików.
Jeżeli mamy już wygenerowany klucz (plik id_rsa.pub) to możemy go wykorzystać.
W przeciwnym wypadku najpierw zobaczmy, jak możemy to zrobić.
Generowanie kluczy ssh-keygen
ssh-keygen
ssh-keygen to narzędzie służące do tworzenia nowych par kluczy uwierzytelniających dla SSH.
Podczas tworzenia kluczy za pomocą ssh-keygen możliwe jest też dodanie kilku flag jak np.
- -t (type) – oznacza algorytm, jaki ma zostać użyty. Wybrać można jedną z 4 opcji: rsa, dsa, ecdsa, ed25519,
- -b (bit) – rozmiar klucza,
- -C (comment) – możliwe dodanie komentarza.
Pozostałe flagi mamy dość dobrze opisane w dokumentacji.
Przykładowe tworzenie klucza z dodatkowymi flagami:
ssh-keygen -t rsa -b 4906 -C name@gmail.com
Para kluczy została utworzona – znajdziesz ją w id_rsa.pub pod ścieżką, która musiała zostać potwierdzona podczas tworzenia kluczy.
Po zakończeniu generowania klucza powinieneś zobaczyć następujące potwierdzenie:
Zwykle klucz publiczny jest identyfikowany z rozszerzeniem .pub.
Możesz użyć edytora tekstu, aby zobaczyć zawartość zarówno klucza prywatnego, jak i publicznego.
Klucz publiczny i klucz prywatny (ang. git ssh key)
Serwer używa klucza publicznego do zaszyfrowania wiadomości i wysłania jej do klienta. Jeśli klient, czyli np. Ty posiadasz poprawny klucz prywatny, możesz odszyfrować wiadomość i odesłać ją z powrotem na serwer w celu weryfikacji.
GitHub i klucz publiczny
Nadszedł czas, aby poinformować GitHub o Twoim kluczu publicznym.
Możesz sprawdzić go za pomocą dowolnego edytora tekstu lub wyświetlić go na konsoli.
cat ~/.ssh/id_rsa.pub
Możemy podejrzeć również nasz klucz prywatny w id_rsa:
Łączenie się z GitHub’em za pośrednictwem SSH
Zaloguj się teraz do swojego konta na GitHub, a następnie przejdź do Ustawień (ang. Settings).
Odszukaj na liście SSH and GPG keys i wybierz opcję stworzenia nowego klucza.
Teraz wystarczy jedynie podać nasz klucz publiczny.
Nazwij swój klucz, jak chcesz i wklej klucz w polu tekstowym.
Po skonfigurowaniu klucza SSH i dodaniu go do konta GitHub możesz przetestować swoje połączenie:
ssh -T git@github.com
Wpisz „tak” po wyświetleniu monitu o „kontynuowaniu połączenia”
Teraz powinniśmy zobaczyć taką wiadomość.
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
Gratulacje, teraz możesz korzystać już z połączenia z kontem GitHub za pomocą klucza ssh!
Git clone SSH
Skoro nawiązaliśmy już bezpiecznie połączenie z GitHub, to spróbujmy wykorzystać je w praktyce do sklonowania zdalnego repozytorium.
Możesz użyć adresu URL SSH podczas kopiowania repozytorium na komputer lokalny.
W linii komend w folderze, do którego chcemy sklonować repozytorium, wpisujemy:
git clone git@github.com:StormITpl/100ideas.git
Git clone HTTPS
Dla porównania poniżej klonowanie repozytorium poprzez HTTPS:
git clone hhtps://github.com/StormITpl/100ideas.git
Git SSH Config
SSH można również wykorzystywać do łączenia się ze zdalnym komputerem.
W takim przypadku – dla wygody – możemy stworzyć plik konfiguracyjny, który pozwala zdefiniować określone ustawienia dla każdego hosta SSH. Co później znacznie ułatwia łączenie się z tym hostem. Definiowanie tych właściwości w pliku eliminuje potrzebę zapamiętywania tego zestawu parametrów za każdym razem, gdy potrzebne jest połączenie.
Jeśli plik ~/.ssh/config nie istnieje, możesz go utworzyć. Zazwyczaj ten plik znajduje się w katalogu .ssh.
Warto zaznaczyć, że katalog ten jest często „ukryty”, ponieważ większość systemów operacyjnych nie pokazuje katalogów poprzedzonych znakiem „.”.
Jak więc wygląda proste połączenie SSH w tym pliku? Poniżej znajduje się przykład prostej konfiguracji.
Host stormit-ssh-host HostName 10.0.0.5 Port 22 User userName
Port 22 jest domyślnym portem dla SSH. Aby zdefiniować to połączenie, wystarczy w linii komend wpisać:
ssh stormit-ssh-host
Git SSH – podsumowanie
W ramach tego materiału poznaliśmy git ssh oraz przećwiczyliśmy tworzenie pary kluczy ssh (klucz prywatny i klucz publiczny), a także klonowanie zdalnego repozytorium za pomocą ssh.
Jeżeli chcesz kontynuować swoją przygodę z gitem – to zapraszam do dodatkowych materiałów:
➡ ZOBACZ 👉: Git tutorial | stash, rebase, commit, merge, checkout, push i clone
20+ BONUSOWYCH materiałów z programowania
e-book – „8 rzeczy, które musisz wiedzieć, żeby dostać pracę jako programista”,
e-book – „Java Cheat Sheet”,
checklista – „Pytania rekrutacyjne”
i wiele, wiele wiecej!