Jak skonfigurować Git, aby używać SSH zamiast HTTPS dla repozytoriów zdalnych?

Git jest jednym z najpopularniejszych systemów kontroli wersji, używanym przez programistów na całym świecie do zarządzania kodem źródłowym. Domyślnie wiele repozytoriów Git używa HTTPS do uwierzytelniania, co wymaga podawania nazwy użytkownika i hasła przy każdej interakcji. Przełączenie na SSH pozwala na bezpieczniejsze i bardziej efektywne uwierzytelnianie, eliminując potrzebę ręcznego wpisywania danych logowania. W tym artykule przedstawimy krok po kroku, jak skonfigurować Git, aby korzystać z SSH zamiast HTTPS.

Dlaczego warto używać SSH zamiast HTTPS?

Przed przystąpieniem do konfiguracji warto zrozumieć korzyści płynące z używania SSH:

  • Bezpieczeństwo: Klucze SSH są bardziej bezpieczne niż nazwy użytkownika i hasła, ponieważ działają na zasadzie uwierzytelniania asymetrycznego.
  • Wygoda: Raz skonfigurowany klucz SSH eliminuje konieczność podawania danych logowania przy każdym poleceniu Git.
  • Zgodność: Wiele popularnych platform, takich jak GitHub, GitLab czy Bitbucket, wspiera SSH jako domyślną metodę uwierzytelniania.

Krok 1: Sprawdzenie instalacji SSH na komputerze

Aby korzystać z SSH, musisz upewnić się, że masz zainstalowane narzędzie SSH na swoim komputerze:

ssh -V

To polecenie wyświetli zainstalowaną wersję SSH. Jeśli SSH nie jest zainstalowane, musisz je zainstalować:

  • Linux: Użyj menedżera pakietów, np. sudo apt install openssh-client (na Ubuntu).
  • Mac: SSH jest zwykle wstępnie zainstalowane.
  • Windows: Użyj Git Bash lub wbudowanego klienta SSH dostępnego w Windows 10 i nowszych.

Krok 2: Generowanie klucza SSH

Jeśli nie masz jeszcze klucza SSH, musisz go wygenerować. W terminalu wpisz:

ssh-keygen -t ed25519 -C "twoj_email@example.com"

Podczas generowania klucza możesz wybrać lokalizację zapisu (domyślnie jest to ~/.ssh/id_ed25519). Wprowadź hasło zabezpieczające (opcjonalnie), aby dodać dodatkowy poziom ochrony.

Krok 3: Dodanie klucza SSH do agenta SSH

Aby Git mógł używać klucza SSH, musisz go dodać do agenta SSH. Użyj następujących poleceń:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Powyższe polecenia uruchamiają agenta SSH i dodają klucz do jego pamięci.

Krok 4: Skopiowanie klucza publicznego

Twoje repozytorium zdalne wymaga dodania klucza publicznego. Skopiuj go za pomocą:

cat ~/.ssh/id_ed25519.pub

Skopiowany klucz wklej w ustawieniach swojego konta GitHub, GitLab lub innego hosta repozytorium w sekcji “SSH Keys”.

Krok 5: Zmiana adresu zdalnego repozytorium na SSH

Jeśli Twoje repozytorium jest skonfigurowane z użyciem HTTPS, musisz zmienić jego adres na SSH. W terminalu wpisz:

git remote -v

To polecenie pokaże aktualny adres zdalny repozytorium. Aby zmienić adres na SSH, użyj:

git remote set-url origin git@host:path/to/repo.git

Przykład dla GitHub:

git remote set-url origin git@github.com:username/repository.git

Krok 6: Testowanie konfiguracji

Aby upewnić się, że wszystko działa poprawnie, przetestuj połączenie zdalne:

ssh -T git@github.com

Powinieneś zobaczyć komunikat potwierdzający połączenie. Jeśli pojawiają się błędy, sprawdź konfigurację klucza SSH i upewnij się, że klucz został dodany do platformy repozytorium.

Podsumowanie

Konfiguracja Git do używania SSH zamiast HTTPS zapewnia lepsze bezpieczeństwo i wygodę pracy. Kroki opisane w tym artykule pozwalają na bezproblemowe przełączenie się na SSH, co znacznie ułatwi interakcję z repozytoriami zdalnymi. Pamiętaj, że klucze SSH są osobiste i nie powinny być udostępniane innym osobom.

Teraz, gdy wiesz, jak skonfigurować Git z użyciem SSH, możesz cieszyć się bardziej efektywną i bezpieczną pracą z kodem źródłowym. Powodzenia!