Content
Uwierzytelnianie klucza SSH w PuTTY
Wprowadzenie
W tym przewodniku dowiesz się, jak skonfigurować autentykację opartą na kluczach SSH za pomocą PuTTY, popularnego klienta SSH dla systemu Windows. Używając autentykacji opartej na kluczach zamiast autentykacji hasłowej, możesz zwiększyć bezpieczeństwo swojego połączenia SSH. Autentykacja oparta na kluczach zapewnia, że tylko osoby posiadające odpowiedni klucz prywatny mogą się zalogować, co stanowi bardziej bezpieczną i niezawodną metodę uwierzytelniania.
Niniejszy przewodnik opisuje proces konfiguracji autentykacji kluczy SSH za pomocą PuTTY i aplikacji klienckiej.
Ważne ostrzeżenie dotyczące bezpieczeństwa: Klucz prywatny musi być przechowywany w ścisłej tajemnicy. Nigdy nie udostępniaj go osobom trzecim, nie przechowuj na niezabezpieczonych urządzeniach i używaj hasła do ochrony klucza dla dodatkowej ochrony. Jeśli klucz zostanie skompromitowany, natychmiast wygeneruj nową parę kluczy i zaktualizuj plik authorized_keys
na serwerze.
1) Generowanie kluczy
PuTTYgen to narzędzie z pakietu PuTTY, przeznaczone głównie dla systemu Windows, służące do generowania par kluczy SSH i konwersji ich formatów. Jego główna funkcja polega na tworzeniu par kluczy publicznych i prywatnych, które mogą być zapisywane w formacie .ppk
(specyficznym dla PuTTY). Ponadto PuTTYgen umożliwia konwersję kluczy między formatami, zapewniając kompatybilność z różnymi klientami i serwerami SSH, takimi jak OpenSSH.
PuTTYgen generuje pary kluczy składające się z klucza publicznego, który można udostępniać, oraz klucza prywatnego, który musi pozostać poufny. Klucz publiczny jest używany do uwierzytelniania podczas łączenia z zdalnymi serwerami.
Format .ppk
jest specyficzny dla PuTTY, ale PuTTYgen może konwertować klucze do innych formatów, takich jak OpenSSH.
Alternatywa: Generowanie kluczy w PuTTYgen
Możesz generować klucze bezpośrednio w PuTTYgen na komputerze z systemem Windows bez użycia serwera Linux. Aby to zrobić:
- Otwórz PuTTYgen.
- Wybierz typ klucza (np. RSA lub EdDSA) oraz rozmiar (zalecane 2048 bitów lub więcej).
- Kliknij Generate i poruszaj myszą, aby wygenerować entropię.
- Zapisz klucz publiczny (skopiuj tekst z pola „Public key for pasting into OpenSSH authorized_keys file”) oraz klucz prywatny jako plik
.ppk
. - Dodaj klucz publiczny do pliku
~/.ssh/authorized_keys
na serwerze (patrz poniżej).
W tym przewodniku skupimy się jednak na generowaniu kluczy na serwerze Linux za pomocą ssh-keygen
, a następnie ich konwersji dla PuTTY.
Wymagania wstępne
Przed rozpoczęciem upewnij się, że posiadasz następujące komponenty:
- PuTTY i PuTTYgen — Pobierz je z oficjalnej strony internetowej. PuTTYgen jest częścią pakietu PuTTY.
- Serwer Linux z zainstalowanym OpenSSH (zazwyczaj preinstalowanym w większości dystrybucji).
- Dostęp SSH do serwera za pomocą hasła (dla początkowej konfiguracji kluczy).
- Opcjonalnie: Hasło do ochrony kluczy (zalecane dla zwiększenia bezpieczeństwa).
Weryfikacja konfiguracji serwera
Przed generowaniem kluczy upewnij się, że autentykacja kluczy jest włączona na serwerze. Otwórz plik /etc/ssh/sshd_config
(z uprawnieniami roota):
sudo nano /etc/ssh/sshd_config
Upewnij się, że linia PubkeyAuthentication yes
jest obecna i niezakomentowana. Jeśli wprowadzono zmiany, zapisz plik i zrestartuj usługę SSH:
sudo systemctl restart sshd
(W niektórych dystrybucjach: sudo service ssh restart
.)
Krok po kroku: Generowanie kluczy w systemie Linux
Połącz się z serwerem przez SSH za pomocą hasła (używając PuTTY lub innego klienta) i wykonaj następujące kroki jako użytkownik, pod którym chcesz się uwierzytelniać (zaleca się, aby nie był to root ze względów bezpieczeństwa; w razie potrzeby użyj sudo
).
Uruchom narzędzie ssh-keygen
. Zostaniesz poproszony o określenie miejsca zapisu kluczy (domyślnie: ~/.ssh/id_rsa
) oraz ustawienie hasła (zalecane dla dodatkowej ochrony; naciśnij Enter, aby pominąć).
ssh-keygen -t rsa -b 2048
(Opcjonalnie: Użyj -t ed25519
dla nowocześniejszego algorytmu.)
W katalogu ~/.ssh
znajdziesz teraz dwa pliki:
id_rsa
— klucz prywatny.id_rsa.pub
— klucz publiczny.
Wyświetl klucze (opcjonalnie, dla weryfikacji):
cat ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub
Przejdź do katalogu ~/.ssh
(jeśli jeszcze tam nie jesteś):
cd ~/.ssh
Dodaj klucz publiczny do pliku authorized_keys
(użyj >>
, aby nie nadpisać istniejącej zawartości):
cat id_rsa.pub >> authorized_keys
Ustaw prawidłowe uprawnienia (kluczowe dla funkcjonowania SSH):
chmod 700 ~/.ssh
chmod 600 id_rsa
chmod 600 authorized_keys
Po wykonaniu tych kroków serwer jest gotowy do przyjmowania połączeń opartych na kluczach. Zrestartuj usługę SSH, jeśli zmieniłeś konfigurację:
sudo systemctl restart sshd
2) Konwersja klucza i uwierzytelnianie za pomocą PuTTY
Przenieś klucz prywatny (id_rsa
) z serwera na lokalny komputer z systemem Windows i skonwertuj go do formatu .ppk
dla PuTTY.
Przeniesienie klucza na komputer lokalny
Użyj scp
(z pakietu PuTTY — pscp.exe
) lub innej bezpiecznej metody. Przykład z pscp
(uruchom w wierszu poleceń Windows):
pscp user@server_ip:~/.ssh/id_rsa C:\path\to\local\id_rsa
(Zastąp user@server_ip
swoimi danymi, a C:\path\to\local
lokalną ścieżką.)
Ostrzeżenie: Nigdy nie przesyłaj klucza przez niezabezpieczone kanały (np. e-mail). Używaj metod szyfrowanych.
Konwersja do formatu .ppk za pomocą PuTTYgen
Otwórz PuTTYgen na komputerze z systemem Windows.

Kliknij Load i wybierz plik id_rsa
(PuTTYgen obsługuje format OpenSSH).

Jeśli klucz jest chroniony hasłem, wprowadź je.

Po załadowaniu kliknij Save private key i zapisz plik jako .ppk
(np. mykey.ppk
). Zgódź się na zapis bez hasła, jeśli nie chcesz dodatkowego hasła (choć jest to zalecane).
Konfiguracja PuTTY do użycia klucza
Otwórz PuTTY.
W głównym oknie wprowadź adres IP serwera, port (zazwyczaj 22) oraz typ połączenia SSH.
Przejdź do Connection → SSH → Auth → Credentials.
W polu Private key file for authentication określ ścieżkę do pliku .ppk
.

Opcjonalnie: Aby włączyć automatyczne logowanie, przejdź do Connection → Data i wpisz nazwę użytkownika (np. root
lub swój użytkownik) w polu Auto-login username.
Zapisz sesję dla wygody i połącz się.
Podczas połączenia, jeśli klucz jest chroniony hasłem, PuTTY poprosi o jego wprowadzenie. Jeśli wszystko jest poprawnie skonfigurowane, zalogujesz się bez konieczności podawania hasła serwera.
Wskazówka: Do zarządzania wieloma kluczami użyj PuTTY Pageant (agenta kluczy z pakietu PuTTY). Załaduj plik .ppk
do Pageant, a PuTTY automatycznie go użyje.
Podsumowanie
Konfigurując autentykację kluczy SSH za pomocą PuTTY i serwera Linux, zapewniasz bezpieczniejsze i bardziej niezawodne połączenie. Używanie kluczy SSH eliminuje konieczność wprowadzania haseł, zmniejszając ryzyko ataków brute-force i przechwycenia. Postępuj zgodnie z krokami opisanymi w tym przewodniku, aby skonfigurować autentykację kluczy SSH za pomocą PuTTY i cieszyć się jej korzyściami.
Dodatkowe wskazówki: Regularnie aktualizuj klucze, monitoruj logi serwera (/var/log/auth.log
) i wyłącz autentykację hasłową w pliku sshd_config
(PasswordAuthentication no
), jeśli klucze są jedyną metodą logowania. W przypadku problemów sprawdź uprawnienia plików i konfigurację serwera.