Przejdź do treści

Jak wygenerować klucz SSH?

Klucz SSH wygenerujesz na każdym systemie i w większości przypadków nie potrzebujesz do tego żadnego dodatkowego programu. Windows 10 i 11, Linux oraz macOS mają wbudowane polecenie ssh-keygen. Osobna aplikacja przydaje się tylko wtedy, gdy łączysz się programem PuTTY: ten wymaga klucza prywatnego w swoim formacie .ppk.

Po co klucz zamiast hasła?

Hasło da się podejrzeć, zgadnąć, wyłudzić phishingiem albo znaleźć w wycieku cudzej bazy. Przy logowaniu wędruje do serwera, a serwer je sprawdza. Klucz działa inaczej: jego tajna połowa nigdy nie opuszcza Twojego komputera, a serwer weryfikuje tylko podpis, który nią wykonałeś.

Klucz to zawsze para plików

To najważniejsza rzecz do zapamiętania z całego poradnika. Powstają dwa pliki i mają zupełnie różne przeznaczenie:

Klucz prywatnyKlucz publiczny
Zostaje na Twoim dyskuTrafia na serwer
Nie wysyłasz go nikomuMożesz przekazać dalej, także nam
Możesz zabezpieczyć go hasłemJawny, nie jest tajemnicą

Najprościej: polecenie ssh-keygen

Windows 10 i 11

Od Windows 10 klient SSH jest częścią systemu, więc wystarczy PowerShell albo Terminal Windows. Wydaj polecenie:

ssh-keygen

Program zapyta, gdzie zapisać klucz, a potem dwa razy o hasło. Domyślnie tworzy parę plików id_rsa (klucz prywatny) i id_rsa.pub (klucz publiczny) w katalogu %USERPROFILE%\.ssh.

Linux

W systemie Linux sprawa jest o wiele prostsza. Wystarczy dostęp do terminala tego, gdzie wydajemy komendy i polecenia.

W terminalu wydaj polecenie ssh-keygen.

Analogicznie zostaniesz poproszony o nadanie hasła dla swojego klucza prywatnego (Enter passphrase).

root@srv:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:JpfhpRfogE8z3hK1JD0+t/6Wf+XEWhi3236Fci6vSPM root@localhost
The key's randomart image is:
+---[RSA 3072]----+
| .+=o            |
|. *++. .         |
| + =o.. o .      |
|  . o...o*  . .  |
|     o..S    = o |
|      .==   . B o|
|     .   .  oB =.|
|      . o  .o+= +|
|       o..... E=+|
+----[SHA256]-----+
root@srv:~#

Nasz klucz publiczny dostępny będzie w lokalizacji /root/.ssh/id_rsa.pub w katalogu obecnego użytkownika.

macOS

W terminalu wydaj polecenie ssh-keygen.

Analogicznie zostaniesz poproszony o nadanie hasła dla swojego klucza prywatnego (Enter passphrase).

hitme@Mac-mini playground % ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/hitme/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/hitme/.ssh/id_rsa.
Your public key has been saved in /Users/hitme/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:AixW/p+HfOw1HDAn98MpDRZlHDBhwWSoRbwvdxM9IN0 [email protected]
The key's randomart image is:
+---[RSA 3072]----+
|    .    o.+@*=. |
|   +      ++.*.E |
|  o +    o+.* .. |
| . . oo . .B =.o.|
|      o S  .o *..|
|       + +..ooo. |
|        = +o++ . |
|         + . .   |
|          .      |
+----[SHA256]-----+
hitme@Mac-mini playground %

Nasz klucz publiczny dostępny będzie w lokalizacji /Users/hitme/.ssh/id_rsa.pub w katalogu obecnego użytkownika.

Jak wygenerować klucz SSH programem PuTTYgen?

PuTTY nie czyta kluczy prywatnych w formacie, który tworzy ssh-keygen. Potrzebuje własnego, z rozszerzeniem .ppk, i do tego służy PuTTYgen: wygeneruje nowy klucz albo wczyta istniejący i zapisze go w formacie zrozumiałym dla PuTTY (menu Conversions → Import key). Pobierz pakiet PuTTY z oficjalnej strony projektu. PuTTYgen jest jego częścią, więc nie musisz szukać osobnego pliku: instalator wgrywa go razem z PuTTY, a w wersji przenośnej pobierasz po prostu puttygen.exe.

Uruchom program puttygen.exe. Nie zmieniaj wartości domyślnych. Typ klucza pozostaw na RSA, a ilość bitów minimum 2048.

Naciśnij przycisk (1) "Generate" następnie poruszaj trochę myszką, da to programowi losowe dane potrzebne do wygenerowania klucza.

program puttygen Okienko programu puttygen. Ustawienia klucza SSH.

Klucze zostaną wygenerowane.

Teraz pozostaje nam nadać hasło (passphrase) aby zabezpieczyć klucz prywatny. Dla sensu i bezpieczeństwa użyj długiego hasła i wpisz je w polach (3) Key passphrase.

puttygen klucz ssh Okienko programu puttygen. Generowanie kluczy SSH.

Klucz publiczny

(2) Zapisz swój wygenerowany klucz publiczny SSH na dysk komputera. Ten klucz możesz udostępniać.

Klucz prywatny

(3) Zapisz swój klucz prywatny, na dysku komputera. Klucz prywatny będzie zabezpieczony hasłem, które nadałeś. Nie udostępniaj tego klucza nikomu.

Spis poradników

Potrzebujesz pomocy?

Utwórz zgłoszenie ↗