Generator par kluczy SSH
Generuj pary kluczy SSH (Ed25519, RSA) w formacie OpenSSH do bezpiecznego uwierzytelniania na serwerze
Wejście
Wyjście
Instrukcja
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@hostnameKlucz publiczny RSA (4096-bitowy)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC2... user@hostnameKlucz 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@hostnameaby ułatwić identyfikację klucza na różnych maszynach - Generowanie po stronie klienta: Klucze są generowane całkowicie w przeglądarce przy użyciu Web Crypto API — nic nie jest przesyłane ani przechowywane
- Pobieranie jednym kliknięciem: Zapisz pliki klucza publicznego i prywatnego bezpośrednio z poprawnymi nazwami plików (
id_ed25519,id_ed25519.pub,id_rsa,id_rsa.pub)
Przypadki użycia
- Konfiguracja dostępu do serwera: Wygeneruj parę kluczy raz i wdróż klucz publiczny na dowolną liczbę zdalnych serwerów Linux/Unix za pośrednictwem
~/.ssh/authorized_keysaby włączyć logowanie SSH bez hasła - Uwierzytelnianie hostingu Git: Dodaj klucz publiczny do GitHub, GitLab lub Bitbucket aby uwierzytelniać operacje
git pushigit pullbez wpisywania poświadczeń za każdym razem - Potoki CI/CD: Utwórz dedykowaną parę kluczy wdrażania dla zautomatyzowanych skryptów lub agentów kompilacji, które potrzebują dostępu SSH do serwerów lub prywatnych repozytoriów
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.