Pack Camo

Generator par kluczy RSA i SSH

Pary kluczy RSA, ECDSA i Ed25519 w formacie PEM i OpenSSH, generowane na Twoim urządzeniu.

Wszystko działa lokalnie — nic nie jest wysyłane.

Generowanie pary kluczy…

Wygeneruj parę kluczy SSH lub RSA bez instalowania czegokolwiek

Ten generator tworzy nową parę kluczy Ed25519, ECDSA (P-256, P-384, P-521) lub RSA (2048, 3072, 4096 bitów) za pomocą Web Crypto API Twojej przeglądarki i eksportuje ją tak, jak potrzebujesz: klucz prywatny OpenSSH i wiersz <code>authorized_keys</code>, dokładnie takie, jakie utworzyłby <code>ssh-keygen</code>; pliki PEM PKCS#8 i SPKI dla OpenSSL, TLS i bibliotek JWT; publiczny JWK; oraz odcisk <code>SHA256:</code>. Klucze powstają na Twoim urządzeniu, a klucz prywatny nigdy nie opuszcza tej strony.

Jak wygenerować parę kluczy SSH

  1. 1Wybierz typ klucza: Ed25519 to nowoczesny domyślny wybór dla SSH; wybierz RSA dla starszych serwerów oraz kluczy podpisujących PEM lub JWT.
  2. 2Opcjonalnie wpisz komentarz, zwykle user@host, aby później rozpoznać klucz w authorized_keys.
  3. 3Kliknij Generuj. Pobierz klucz prywatny jako id_ed25519 (lub id_rsa, id_ecdsa), a klucz publiczny pod tą samą nazwą z dopiskiem .pub.
  4. 4Przenieś oba do ~/.ssh/, uruchom chmod 600 ~/.ssh/id_ed25519 i dodaj wiersz klucza publicznego do ~/.ssh/authorized_keys na serwerze lub do ustawień kluczy SSH w swoim serwisie Git.

Jaki typ klucza wybrać?

Ed25519
Mały (klucz publiczny ma 68 znaków), szybki i odporny na błędy implementacji. Obsługiwany przez OpenSSH 6.5 i nowsze, GitHub, GitLab i każdy współczesny serwer. Obecnie najlepszy wybór dla SSH.
ECDSA (P-256, P-384, P-521)
Krzywe NIST, potrzebne, gdy wymagają ich zasady zgodności lub gdy Ed25519 nie jest akceptowany, np. przez niektóre tokeny sprzętowe i chmurowe usługi kluczy.
RSA
Najszerzej kompatybilny, także z bardzo starymi serwerami SSH oraz wieloma bibliotekami TLS i JWT (RS256). Używaj co najmniej 3072 bitów dla kluczy, które mają służyć po 2030 roku; 2048 to minimum, które wciąż uznaje się za akceptowalne.

Formaty w skrócie

Klucz prywatny OpenSSH
<code>-----BEGIN OPENSSH PRIVATE KEY-----</code>, format, który <code>ssh-keygen</code> zapisuje domyślnie. Tutaj jest generowany bez szyfrowania; hasło dodasz później poleceniem <code>ssh-keygen -p -f id_ed25519</code>.
Klucz publiczny OpenSSH
Jeden wiersz, <code>ssh-ed25519 AAAA… comment</code>, dla <code>authorized_keys</code>, GitHub, GitLab i konsol chmurowych.
Klucz prywatny PKCS#8 (PEM)
<code>-----BEGIN PRIVATE KEY-----</code>, standardowy kontener odczytywany przez OpenSSL, Javę, Node.js, Go i większość bibliotek JWT dla każdego typu klucza.
Klucz publiczny SPKI (PEM)
<code>-----BEGIN PUBLIC KEY-----</code>, postać X.509 SubjectPublicKeyInfo używana do weryfikacji podpisów i w konfiguracji weryfikacji JWT.
JWK
Klucz publiczny w JSON (RFC 7517) z odciskiem <code>kid</code>, gotowy do opublikowania w endpoincie JWKS.

Odciski kluczy

Odcisk to skrót SHA-256 klucza publicznego w formacie wire SSH, zakodowany w Base64 bez dopełnienia: SHA256:…. To właśnie wyświetla ssh-keygen -lf id_ed25519.pub, to pokazuje GitHub obok każdego klucza i to widzisz, gdy SSH prosi o zaufanie nowemu hostowi. Porównanie odcisków pozwala sprawdzić, czy dwie kopie klucza publicznego to ten sam klucz.

Czy generowanie kluczy w przeglądarce jest bezpieczne?

Klucze pochodzą z crypto.subtle.generateKey, wbudowanej kryptografii przeglądarki, która korzysta z bezpiecznego generatora liczb losowych systemu operacyjnego, tego samego źródła, z którego korzysta ssh-keygen. Nic nie jest wysyłane przez sieć: możesz wczytać tę stronę, rozłączyć się i generować klucze offline.

W przypadku kluczy chroniących systemy produkcyjne najbezpieczniej nadal generować je na maszynie, która będzie ich używać, poleceniem ssh-keygen -t ed25519, albo na kluczu sprzętowym. To narzędzie świetnie sprawdza się w środowiskach testowych, kluczach wdrożeniowych CI, kluczach podpisujących JWT i na maszynach bez OpenSSH. Aby sprawdzić certyfikat oparty na takim kluczu, użyj dekodera certyfikatów.

Najczęstsze pytania

Jak wygenerować klucz SSH online?
Wybierz Ed25519, wpisz komentarz, np. swój e-mail, kliknij Generuj i pobierz klucz prywatny (id_ed25519) oraz publiczny (id_ed25519.pub). Umieść oba w ~/.ssh i dodaj wiersz z pliku .pub na serwerze lub w swoim serwisie Git.
Czy Ed25519 jest lepszy od RSA?
Dla SSH tak: klucze Ed25519 są znacznie krótsze, szybsze w użyciu i dają bezpieczeństwo porównywalne z RSA-3072. Wybieraj RSA tylko dla systemów, które nie obsługują Ed25519.
Dlaczego Ed25519 jest niedostępny w mojej przeglądarce?
Ed25519 trafił do Web Crypto API w Firefoksie 129, Safari 17 i Chrome 137. W starszej przeglądarce zaktualizuj ją albo wybierz ECDSA lub RSA.
Czy mogę dodać hasło do klucza prywatnego?
Klucz jest generowany bez hasła. Dodaj je na własnym komputerze poleceniem ssh-keygen -p -f ~/.ssh/id_ed25519, które zaszyfruje plik na miejscu.
Jak przekonwertować klucz do formatu .ppk dla PuTTY?
Otwórz PuTTYgen, wybierz Load, wskaż pobrany klucz prywatny OpenSSH i zapisz go jako klucz prywatny. PuTTYgen odczytuje format OpenSSH bezpośrednio.
Który plik trafia na serwer?
Tylko klucz publiczny, czyli jedyny wiersz pliku .pub, dopisany do ~/.ssh/authorized_keys. Klucz prywatny zostaje na Twoim komputerze i nigdy nie powinien być udostępniany.
Dlaczego SSH twierdzi, że uprawnienia mojego klucza prywatnego są zbyt otwarte?
SSH odrzuca klucze prywatne, które mogą odczytać inni użytkownicy. Uruchom chmod 600 na pliku klucza prywatnego i chmod 700 na katalogu ~/.ssh.
Czy klucze są wysyłane na serwer?
Nie. Generuje je Web Crypto API Twojej przeglądarki na tej stronie i istnieją tylko w pamięci, dopóki ich nie pobierzesz lub nie skopiujesz.