Co to jest para kluczy SSH?

Para kluczy SSH to zestaw dwóch kluczy kryptograficznych używanych do uwierzytelniania użytkownika na serwerze zdalnym bez hasła. Para składa się z klucza prywatnego, przechowываnego w tajemnicy na komputerze użytkownika, oraz klucza publicznego, umieszczonego na serwerze zdalnym. Podczas łączenia się serwer wyzwala klienta, aby udowodnił posiadanie klucza prywatnego — bez konieczności przesyłania samego klucza prywatnego. To asymetryczne podejście jest znacznie bezpieczniejsze niż uwierzytelnianie oparte na haśle, ponieważ nie ma wspólnego sekretu, który można by przechwycić lub złamać metodą brute-force.

Pary kluczy SSH są generowane przy użyciu algorytmów kryptografii klucza publicznego. Najczęściej używane to Ed25519, nowoczesny algorytm krzywej eliptycznej znany z małego rozmiaru klucza i wysokiego bezpieczeństwa, oraz RSA, sprawdzony algorytm opierający się na trudności faktoryzacji dużych liczb całkowitych. Ed25519 jest zalecany dla nowych kluczy ze względu na jego lepszą wydajność i odporność na ataki kanałów pobocznych.

Opis narzędzia

Generator Par Kluczy SSH tworzy kryptograficznie bezpieczne pary kluczy SSH Ed25519 lub RSA bezpośrednio w przeglądarce przy użyciu Web Crypto API. Żadne dane nie są wysyłane na serwer — cały materiał klucza jest generowany lokalnie na Twoim urządzeniu. Możesz opcjonalnie dodać komentarz (zazwyczaj user@hostname) aby ułatwić identyfikację klucza później. Wygenerowane klucze publiczne i prywatne można skopiować do schowka lub pobrać jako pliki, gotowe do użycia z ssh-copy-id lub dowolnym klientem SSH.

Przykłady

Klucz publiczny Ed25519

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl user@hostname

Klucz publiczny RSA (4096-bitowy)

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC2... user@hostname

Klucz prywatny (format OpenSSH)

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAAB...
-----END OPENSSH PRIVATE KEY-----

Funkcje

  • Obsługa Ed25519 i RSA: Wybierz między nowoczesnym algorytmem krzywej eliptycznej a klasycznym algorytmem RSA
  • Opcje rozmiaru klucza RSA: Wybierz klucze RSA o rozmiarze 2048, 3072 lub 4096-bitowe, aby zrównoważyć bezpieczeństwo i wydajność
  • Opcjonalne pole komentarza: Dołącz komentarz w stylu user@hostname aby ułatwić identyfikację klucza na różnych maszynach

Jak to działa

Generowanie kluczy wykorzystuje wbudowany interfejs API przeglądarki crypto.subtle (Web Crypto). Dla Ed25519, surowy 32-bajtowy skalar prywatny i 32-bajtowy klucz publiczny są pakowane w format przewodowy OpenSSH (openssh-key-v1). Dla RSA, klucz jest eksportowany w formacie PKCS#8 DER i owinięty w standardową kopertę PEM. Blob klucza publicznego jest kodowany w formacie przewodowym SSH (nazwa algorytmu z prefiksem długości, po której następuje materiał klucza) i zakodowany w Base64, zgodnie z formatem oczekiwanym przez plik authorized_keys OpenSSH.

Porady

  • Po pobraniu ustaw prawidłowe uprawnienia do pliku klucza prywatnego: chmod 600 ~/.ssh/id_ed25519. SSH odmówi użycia klucza prywatnego, który jest czytelny dla innych użytkowników.
  • Używaj Ed25519, chyba że potrzebujesz kompatybilności ze starszymi systemami, które go nie obsługują. Generuje krótsze klucze i jest szybszy niż RSA.
  • Pole komentarza nie wpływa na siłę kryptograficzną klucza — służy wyłącznie do identyfikacji przez człowieka i można je zmienić później za pomocą ssh-keygen -c.
  • Aby uzyskać maksymalną kompatybilność RSA ze starszymi serwerami, używaj kluczy 4096-bitowych. W przypadku nowoczesnych serwerów Ed25519 jest preferowany niezależnie od rozmiaru klucza RSA.