Git SSH

GIT SSH

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).

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.

git ssh key - git ssh

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.

git ssh key - ssh-keygen git ssh

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:

git ssh key - git generate ssh keys git ssh

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.

git ssh key - git private ssh key git public ssh key git ssh

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.

git ssh key - git public ssh key git generate ssh key git ssh

cat ~/.ssh/id_rsa.pub

git ssh key - git public ssh key git generate ssh key git ssh

Możemy podejrzeć również nasz klucz prywatny w id_rsa:

git ssh key - git private ssh key git generate ssh key git ssh

Łą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).

git ssh key - GitHub settings git ssh

Odszukaj na liście SSH and GPG keys i wybierz opcję stworzenia nowego klucza.

git ssh key - GitHub new ssh key git ssh

Teraz wystarczy jedynie podać nasz klucz publiczny.

Nazwij swój klucz, jak chcesz i wklej klucz w polu tekstowym.

git ssh key - GitHub add ssh key git ssh

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.git clone ssh key - GitHub git ssh

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 https key - GitHub git ssh

 
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!

Jak zostać programistą

No comments
Share:

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *