Close

Co to jest klucz SSH Git?

Klucz SSH jest poświadczeniem dostępu do protokołu sieciowego SSH (secure shell). Ten uwierzytelniony i zaszyfrowany bezpieczny protokół sieciowy jest używany do zdalnej komunikacji między komputerami w niezabezpieczonej otwartej sieci. SSH służy do zdalnego przesyłania plików, zarządzania siecią i zdalnego dostępu do systemu operacyjnego. Akronim SSH jest również używany do opisania zestawu narzędzi używanych do interakcji z protokołem SSH.

SSH używa pary kluczy, aby zainicjować bezpieczny uścisk dłoni między zdalnymi stronami. Para kluczy składa się z klucza publicznego i prywatnego. Terminy „prywatny” i „publiczny” mogą być mylące, ponieważ oba nazywane są kluczami. Bardziej pomocne jest myślenie o kluczu publicznym jako o „zamku”, a kluczu prywatnym jako „kluczu”. Dajesz publiczny „zamek” zdalnym podmiotom w celu zaszyfrowania lub „zamknięcia” danych. Dane te są następnie otwierane za pomocą klucza „prywatnego”, który przechowujesz w bezpiecznym miejscu.


Jak utworzyć klucz SSH


Klucze SSH są generowane za pomocą algorytmu kryptograficznego klucza publicznego, najczęściej jest to RSA lub DSA. Na bardzo wysokim poziomie klucze SSH są generowane za pomocą wzoru matematycznego, który używa 2 liczb pierwszych i losowej zmiennej początkowej, aby utworzyć klucz publiczny i prywatny. Jest to wzór jednokierunkowy, który zapewnia, że klucz publiczny może pochodzić z klucza prywatnego, ale klucz prywatny nie może pochodzić z klucza publicznego.

Klucze SSH są tworzone za pomocą narzędzia do generowania kluczy. Pakiet narzędzi wiersza poleceń SSH zawiera narzędzie keygen. Większość dostawców hostingu systemu git oferuje przewodniki dotyczące tworzenia klucza SSH.

Generowanie klucza SSH na komputerach Mac i komputerach z systemem Linux

Systemy operacyjne OS X i Linux są dostarczane z kompletnymi, nowoczesnymi aplikacjami terminalowymi, w tym z zainstalowanym pakietem SSH. Proces tworzenia klucza SSH jest w nich taki sam.

1. Wykonaj następujące czynności, aby rozpocząć tworzenie klucza.

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Logo Git
materiały pokrewne

Git — ściągawka

Logo Bitbucket
POZNAJ ROZWIĄZANIE

Poznaj środowisko Git z rozwiązaniem Bitbucket Cloud

To polecenie utworzy nowy klucz SSH, używając adresu e-mail jako etykiety.

2. Zostanie wyświetlony monit z prośbą o podanie pliku, w którym chcesz zapisać klucz.
Możesz określić lokalizację pliku lub nacisnąć klawisz „Enter”, aby zaakceptować domyślną lokalizację pliku.

> Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

3. Następny monit poprosi o podanie bezpiecznego hasła. Hasło frazowe doda kolejną warstwę zabezpieczeń do SSH i będzie wymagane za każdym razem, gdy zostanie użyty klucz SSH. Jeśli ktoś uzyska dostęp do komputera, na którym przechowywane są klucze prywatne, może również uzyskać dostęp do dowolnego systemu, który używa tego klucza. Dodanie hasła do kluczy uniemożliwi ten scenariusz.

> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

W tym momencie nowy klucz SSH zostanie wygenerowany dla wcześniej określonej ścieżki pliku.

4. Dodaj nowy klucz SSH do programu ssh-agent.

ssh-agent to kolejny program, który jest częścią pakietu narzędzi SSH. ssh-agent odpowiada za przechowywanie kluczy prywatnych. Pomyśl o tym, jak o pęku kluczy. Oprócz przechowywania kluczy prywatnych przekazuje również żądania w celu podpisywania żądań SSH kluczami prywatnymi, aby te nigdy nie były przekazywane w sposób niezabezpieczony.

Przed dodaniem nowego klucza SSH do programu ssh-agent najpierw upewnij się, że ssh-agent działa, wykonując następujące polecenie:

$ eval "$(ssh-agent -s)"
> Agent pid 59566

Po uruchomieniu programu ssh-agent następujące polecenie doda nowy klucz SSH do lokalnego agenta SSH.

ssh-add -K /Users/you/.ssh/id_rsa

Nowy klucz SSH jest teraz zarejestrowany i gotowy do użycia!

Generowanie klucza SSH w systemie Windows


Środowiska Windows nie mają standardowej domyślnej powłoki uniksowej. Trzeba zainstalować zewnętrzne programy powłoki, aby móc w pełni korzystać z narzędzi do generowania kluczy. Najprostszą opcją jest użycie oprogramowania Git Bash. Po zainstalowaniu Git Bash te same kroki, co w przypadku systemów Linux i macOS, można wykonać w powłoce Git Bash.

Podsystem Windows dla systemu Linux


Nowoczesne środowiska Windows oferują podsystem Windows dla systemu Linux. Podsystem Windows dla systemu Linux oferuje pełną powłokę Linuxa w tradycyjnym środowisku Windows. Jeśli podsystem systemu Linux jest dostępny, kroki omówione wcześniej dla systemów Linux i macOS można wykonać w podsystemie Windows dla systemu Linux.

Podsumowanie


Klucze SSH służą do uwierzytelniania bezpiecznych połączeń. Postępując zgodnie z tym przewodnikiem, możesz utworzyć klucz SSH i zacząć go używać. Git może używać kluczy SSH zamiast tradycyjnego uwierzytelniania hasłem podczas wypychania lub ściągania kodu ze zdalnych repozytoriów. Nowoczesne hostowane rozwiązania git, takie jak Bitbucket, obsługują uwierzytelnianie kluczem SSH.


Udostępnij ten artykuł

Zalecane lektury

Dodaj te zasoby do zakładek, aby dowiedzieć się więcej na temat rodzajów zespołów DevOps lub otrzymywać aktualności na temat metodyki DevOps w Atlassian.

Ludzie współpracujący przy ścianie pełnej narzędzi

Blog Bitbucket

Ilustracja DevOps

Ścieżka szkoleniowa DevOps

Demonstracje funkcji z ekspertami Atlassian

Zobacz, jak Bitbucket Cloud współpracuje z Atlassian Open DevOps

Zapisz się do newslettera DevOps

Thank you for signing up