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!