Werkzeuge

Schlüsselpaar-Generator für RSA, ECDSA und Ed25519

Erzeugen Sie RSA-2048–4096-, ECDSA-P-256/P-384- oder Ed25519-Schlüsselpaare im Browser, als PEM und als OpenSSH-Schlüssel.

Kostenlos

Ergebnis

Das Ergebnis erscheint hier.

Manchmal brauchen Sie sofort ein Schlüsselpaar – um Test-JWTs zu signieren, einen Staging-TLS-Endpunkt einzurichten oder einem CI-Job einen eigenen SSH-Deploy-Key zu geben –, und auf dem Rechner vor Ihnen ist kein OpenSSL installiert. Diese Seite erzeugt es mit dem WebCrypto des Browsers, derselben Implementierung, die der Browser für TLS nutzt; der private Schlüssel entsteht also auf Ihrem Gerät und existiert nirgendwo sonst. Sie erhalten den privaten Schlüssel als PKCS#8-PEM (oder als OpenSSH-Schlüsseldatei), den öffentlichen als SPKI-PEM und die einzeilige OpenSSH-Public-Key-Zeile für authorized_keys. Das Kommandozeilen-Pendant ist OpenSSL (openssl/openssl, 30k+ Sterne, Apache-2.0), das jede PEM-Datei liest, die dieses Werkzeug schreibt.

So arbeitet es

  • Die Schlüssel stammen aus crypto.subtle.generateKey, mit dem öffentlichen Exponenten 65537 für RSA, den NIST-Kurven für ECDSA und Ed25519, sofern der Browser es unterstützt.
  • Die PEM-Teile sind die Standardcontainer – BEGIN PRIVATE KEY (PKCS#8) und BEGIN PUBLIC KEY (SPKI) –, die OpenSSL, Node.js, Java, Go und jede JWT-Bibliothek ohne Umwandlung laden.
  • Die OpenSSH-Zeile ist nach RFC 4253, 5656 und 8709 kodiert und in Tests Byte für Byte mit von ssh-keygen erzeugten Schlüsseln abgeglichen, mit demselben SHA256-Fingerabdruck, den ssh-keygen -l ausgibt.
  • Mit dem privaten Format OpenSSH wird eine unverschlüsselte openssh-key-v1-Datei geschrieben – das Format, das ssh-keygen seit OpenSSH 7.8 standardmäßig erzeugt.

Wohin Ihre Daten gehen

Nirgendwohin. Dieses Werkzeug läuft vollständig in Ihrem Browser: Der eingefügte Text wird von der Seite verarbeitet und weder an einen Server übertragen noch protokolliert.

Dieses Werkzeug verarbeitet Schlüssel und Zugangsdaten. Zu einem Lauf wird deshalb nichts gespeichert, auch nicht in Ihrem eigenen Verlauf.

Was es kostet

Dieses Werkzeug ist kostenlos, ohne Anmeldung und ohne Punkte.

Häufige Fragen

Welchen Schlüsseltyp sollte ich wählen?
Für SSH Ed25519, gespeichert im privaten OpenSSH-Format: kurze Schlüssel, schnell, keine Parameter, die man falsch wählen kann – und manche ssh-Builds, darunter der von macOS, können einen als PKCS#8 gespeicherten Ed25519-Schlüssel nicht laden. Für TLS-Zertifikate und JWTs hat ECDSA P-256 die breiteste Unterstützung bei modernen Clients. Wählen Sie RSA, wenn etwas Altes oder Strenges es verlangt; NIST SP 800-57 hält 2048-Bit-RSA bis 2030 für ausreichend und empfiehlt danach 3072 Bit. Ein 4096-Bit-Schlüssel kann im Browser einige Sekunden brauchen.
Der private Schlüssel hat keine Passphrase. Wie füge ich eine hinzu?
Speichern Sie das OpenSSH-Format und führen Sie ssh-keygen -p -f yourkey aus, um direkt eine Passphrase zu setzen. Für die PKCS#8-Datei schreibt openssl pkcs8 -topk8 -v2 aes-256-cbc -in key.pem -out key.enc.pem eine verschlüsselte Kopie. Schränken Sie einen gespeicherten privaten SSH-Schlüssel mit chmod 600 ein, sonst verweigert ssh seine Verwendung.
Ich brauche BEGIN RSA PRIVATE KEY, nicht BEGIN PRIVATE KEY.
Das ist der ältere PKCS#1-Container, der dieselben Zahlen enthält. Mit OpenSSL 3 wandelt openssl rsa -in key.pem -traditional -out key.rsa.pem ihn um. Die meiste aktuelle Software, einschließlich OpenSSH, akzeptiert PKCS#8 direkt; prüfen Sie also zuerst, ob Sie die alte Form wirklich brauchen.
Wie prüfe ich, ob das Schlüsselpaar stimmt?
ssh-keygen -y -f yourkey gibt den aus einem privaten OpenSSH-Schlüssel abgeleiteten öffentlichen Schlüssel aus; er sollte der Zeile auf dieser Seite entsprechen. Für PEM gibt openssl pkey -in key.pem -pubout den SPKI-Public-Key aus, der Byte für Byte dem PUBLIC-KEY-Block entsprechen sollte.
Ed25519 meldet einen Fehler. Warum?
Ed25519 kam später zu WebCrypto als RSA und ECDSA, und ein veralteter Browser bietet es womöglich nicht an. Aktuelle Versionen von Chrome, Edge, Firefox und Safari tun es. Ein Browser-Update behebt das Problem; ansonsten ist ECDSA P-256 die nächstliegende Alternative.

Das Open Source dahinter

Dieses Werkzeug ist eine eigenständige Implementierung ohne fremde Bibliothek. openssl/openssl (Apache-2.0) erledigt dieselbe Aufgabe als Bibliothek — wer sie im eigenen Programm braucht, fängt dort an, statt eine Webseite aufzurufen.

openssl/openssl

Auch bekannt als

  • RSA Schlüssel generieren
  • SSH Schlüssel erzeugen online
  • Ed25519 Schlüssel generieren
  • PEM Schlüsselpaar erzeugen
  • ECDSA Schlüssel generieren
  • OpenSSH Public Key