Jak skonfigurować Git + SSH + Bitbucket

Wstęp


Klucze SSH

Aby skonfigurować połączenie pomiędzy klientem Git (bez konieczności podawania hasła za każdym razem) oraz serwisem Bitbucket należy przede wszystkim wygenerować klucze, które będą brały udział w procesie uwierzytelniania SSH: klucz prywatny oraz publiczny.


Generowanie kluczy

Bitbucket obsługuje cztery algorytmy szyfrowania kluczy klienta: Ed25519, ECDSA, RSA i DSA. Wybierz jeden z nich o rekomendowanej długości klucza nie mniejszej od poniższych wartości:

ssh-keygen -t ed25519 -b 256
ssh-keygen -t ecdsa -b 256
ssh-keygen -t rsa -b 2048
ssh-keygen -t dsa -b 1024

 Ostateczne polecenie powinno wyglądać podobnie do tego:

ssh-keygen -t ed25519 -b 4096 -C {username@emaildomain.com} -f {ssh-key-name}
  • {username@emaildomain.com} adres email powiązany z kontem Bitbucket
  • {ssh-key-name} nazwa dla plików które zostaną wygenerowane (ta flaga nie jest wymagana)

Jeśli nazwa plików nie została podana w wierszu poleceń pojawi się zapytanie o nazwę. Można jednak wcisnąć Enter, a para plików (klucz prywatny oraz publiczny) otrzyma domyślną nazwę. 


Pliki zostaną wygenerowane w katalogu .ssh znajdującym się w katalogu domowym użytkownika.

Instalacja kluczy


Gdzie instalować?

Klucz prywatny nie powinen być nikomu udostępniany i powinien być zainstalowany na hoście (komputerze użytkownika) z którego inicjowane jest połączenie SSH. Klucz publiczny powinien zostać zainstalowany w serwisie Bitbucket.


Instalacja klucza prywatnego

 Wykonaj polecenie by dodać klucz prywatny do agenta SSH:

ssh-add {ssh-key-name}

gdzie {ssh-key-name} to nazwa wygenerowanego wcześniej klucza prywatnego. Jeśli wcześniej były już generowane klucze lub istnieje potrzeba konfiguracji nowego warto sprawdzić ustawienia w pliku .ssh/config który może posiadać wpis lokalizacji klucza:

Host bitbucket.org 
​AddKeysToAgent yes 
​IdentityFile ~/.ssh/{ssh-key-name}


Instalacja klucza publicznego

Klucz publiczny instalujemy w serwisie Bitbucket. Znajdź ikonę "zębatki" w ustawieniach danego repozytorium i przejdź do "Access keys".

Uwaga: zwróć uwagę, czy Twoje repozytorium umożliwia wykonywanie poleceń zarówno do odczytu jak i zapisu z użyciem kluczy SSH. Jeśli aktywna jest tylko opcja do odczytu to nie będzie możliwe wykonywanie zmian w repozytorium (np. git push).

 

Następnie dodaj zawartość pliku klucza publicznego i zapisz zmiany.

Testowanie

Wykonaj następujące polecenie, aby upewnić się, że instalacja przebiegła pomyślnie.

ssh -T git@bitbucket.org​

Nie musisz podawać już nazwy swojego użytkownika. Proces uwierzytelniania podczas korzystania z poleceń GIT (np. git push, git pull...) powinien odbywać się z udziałem zainstalowanych kluczy. Możesz teraz pobrać swoje repozytorium następująco:


git clone git@bitbucket.org:myworkspace/myrepo.git


Pamiętaj, aby zastosować adres przeznaczony do połączenia SSH, a nie HTTPS!




Jeśli łączysz się pierwszy raz do serwisu wtedy powyższe polecenie może wymagać dodatkowego potwierdzenia, które doda nowy wpis do pliku known_hosts.


Możesz ręcznie dodać nowy wpis, jednym ze sposobów jest wykonanie polecenia:

ssh-keygen -R bitbucket.org && curl https://bitbucket.org/site/ssh >> ~/.ssh/known_hosts​

Oczywiście zwróć uwagę, czy plik known_hosts istnieje, czy wiersz poleceń dysponuje poleceniem curl oraz nazwę serwisu, z którego korzystasz (Twoja firma może udostępniać serwis Bitbucket pod inną nazwą i portem). 

Równoważne jest skopiowanie zawartości znajdującej się na stronie https://bitbucket.org/site/ssh wprost do pliku known_hosts.


Powodzenia!

#buymeacoffee