SSH-Key Generator

RSA, ECDSA oder Ed25519 – lokal in deinem Browser erzeugt, optional passphrase-geschützt.

🔒 100 % lokal, kein Server: Schlüssel, Passphrase & Fingerabdruck verlassen dieses Gerät nie – der Code enthält keinen einzigen Netzwerk-Aufruf (z. B. fetch()), der Daten sendet (selbst prüfbar: Quellcode oder DevTools → Network-Tab). Passphrase-Verschlüsselung nutzt AES-256-CTR mit bcrypt-KDF (16 Runden) – wie ssh-keygen standardmäßig.

1 · Schlüsseltyp

Ed25519 verwendet eine feste, moderne 256-Bit-Kurve – schnell, sicher, keine weiteren Parameter nötig.

2 · Beschreibung (Kommentar)

Kann jederzeit geändert werden, ohne den Schlüssel neu zu erzeugen.

3 · Passphrase (optional)

Die Passphrasen stimmen nicht überein.

Generiert ein zufälliges 16-Zeichen-Passwort mit Groß-/Kleinbuchstaben, Ziffern und Sonderzeichen. Notiere es dir sicher – ohne Passphrase gibt es keine Wiederherstellung.

Ergebnis

SSH-Schlüsseltypen im Überblick

Was RSA, ECDSA und Ed25519 unterscheidet, welche Schlüssellänge sinnvoll ist und wann eine Passphrase Sinn ergibt.

Ed25519 Empfehlung

Ed25519 ist der moderne Standard für SSH-Schlüssel und seit OpenSSH 6.5 (2014) verfügbar. Der Algorithmus verwendet eine einzige, fest definierte elliptische Kurve (benannt nach der zugrunde liegenden Primzahl 2²⁵⁵−19) – es gibt bewusst keine Parameter zum Einstellen, weil das Fehlkonfiguration ausschließt. Ed25519-Schlüssel sind mit 256 Bit kompakt, die Schlüsselerzeugung sowie jede Signatur sind deutlich schneller als bei RSA, und das Sicherheitsniveau entspricht etwa AES-128 – nach heutigem Stand für praktisch jeden Einsatzzweck ausreichend. Einzige Einschränkung: sehr alte SSH-Server (vor 2014) unterstützen Ed25519 noch nicht.

ECDSA NIST-Kurven

ECDSA (Elliptic Curve Digital Signature Algorithm) ist ebenfalls ein elliptische-Kurven-Verfahren, unterstützt in SSH aber drei wählbare Kurven: P-256, P-384 und P-521 (in ssh-keygen als nistp256/384/521 bezeichnet). Diese Zahlen sind exakte Bitlängen, keine Rundungen – P-521 nutzt eine Primzahl nahe 2⁵²¹, kein "512". P-521 ist zugleich die größte in SSH verfügbare Kurve; ein RFC-Standard für ECDSA in SSH (RFC 5656) definiert keine weiteren Kurven, sodass es hier kein "Mehr" gibt. ECDSA gilt als solide, wird aber von manchen aus Vorsicht vor den NIST-Kurvenparametern gemieden, weshalb Ed25519 meist bevorzugt wird.

RSA maximale Kompatibilität

RSA ist das älteste der drei Verfahren und wird von praktisch jedem SSH-Client und -Server seit den 1990ern verstanden – die richtige Wahl, wenn ein sehr alter oder restriktiver Zielserver kein ECDSA oder Ed25519 unterstützt. Wählbar sind 2048, 3072 oder 4096 Bit. 1024 Bit wird hier bewusst nicht angeboten: NIST hat diese Schlüssellänge bereits 2013/2015 offiziell ausgemustert, und moderne Browser verweigern die Erzeugung meist ohnehin. Über 4096 Bit hinaus bringt kaum zusätzlichen Sicherheitsgewinn, macht die Schlüsselerzeugung und jeden Verbindungsaufbau aber spürbar langsamer – viele Server lehnen übergroße RSA-Schlüssel zudem aktiv ab. Der öffentliche Exponent ist fix auf 65537 gesetzt, denselben Wert, den auch ssh-keygen ohne Ausnahme verwendet.

TypSchlüssellängeGeschwindigkeitKompatibilitätEmpfehlung
Ed25519fix, 256 Bitsehr schnellab OpenSSH 6.5 (2014)Standardwahl
ECDSA256 / 384 / 521 Bitschnellab ca. 2011solide Alternative
RSA2048 / 3072 / 4096 Bitlangsamer bei 4096praktisch überall, auch uralte Serverbei Legacy-Systemen

Wie ist ein SSH-Schlüssel eigentlich aufgebaut?

Ein SSH-Schlüsselpaar besteht aus zwei Textdateien mit sehr unterschiedlichem Aufbau. Der öffentliche Schlüssel (.pub) ist eine einzelne Zeile aus drei durch Leerzeichen getrennten Teilen: dem Algorithmus-Namen (z. B. ssh-ed25519), einem Base64-Block und optional dem Kommentar am Ende. Der Base64-Block selbst ist eine kleine Binärstruktur aus längenpräfixierten Feldern – bei Ed25519 der Algorithmus-Name plus 32 Byte öffentliches Schlüsselmaterial, bei ECDSA zusätzlich der Kurvenname und ein Kurvenpunkt, bei RSA der öffentliche Exponent (immer 65537) und der Modulus.

Der private Schlüssel folgt seit OpenSSH 6.5 (2014) dem eigenen openssh-key-v1-Format, sichtbar an den Rahmenzeilen -----BEGIN OPENSSH PRIVATE KEY----- und -----END OPENSSH PRIVATE KEY-----. Dazwischen steht ein einzelner Base64-Block, der – dekodiert – eine Magic-Kennung, den verwendeten Chiffre- und KDF-Namen (bei Passphrase aes256-ctr/bcrypt, sonst none), eine Kopie des öffentlichen Schlüssels sowie – optional verschlüsselt – das eigentliche private Schlüsselmaterial samt Prüfsumme und Kommentar enthält. Genau dieser Aufbau ist auch der Grund, warum eine falsche Passphrase beim Entsperren sofort auffällt: Ohne den richtigen Schlüssel lässt sich die interne Prüfsumme nicht validieren.

Welche Kryptografie wird verwendet?

Für die Schlüsselerzeugung selbst kommt die Web Crypto API des Browsers zum Einsatz (RSA, ECDSA sowie AES-256-CTR für die Passphrase-Verschlüsselung), für Ed25519 zusätzlich die Bibliothek tweetnacl-js, da der Browser diesen Algorithmus nicht nativ anbietet. Die Passphrase-Ableitung folgt dem bcrypt-KDF nach OpenBSDs bcrypt_pbkdf – exakt demselben Verfahren, das ssh-keygen standardmäßig verwendet. Alle Varianten inkl. Passphrase-Verschlüsselung wurden gegen echtes ssh-keygen verifiziert (identische öffentliche Schlüssel, Fingerabdrücke und korrektes Zurückweisen falscher Passphrasen).

Passphrase-Verschlüsselung

Wird eine Passphrase gesetzt, verschlüsselt dieses Tool den privaten Schlüssel exakt so, wie ssh-keygen es standardmäßig tut: mit AES-256-CTR, abgeleitet über eine bcrypt-basierte Schlüsselableitungsfunktion (bcrypt_pbkdf, 16 Runden). Diese KDF ist bewusst rechenintensiv, um Brute-Force-Angriffe auf die Passphrase zu erschweren. Ohne Passphrase liegt der private Schlüssel im Klartext vor – für Tests unproblematisch, für produktive oder besonders sensible Zugänge sollte immer eine Passphrase gesetzt werden. Es gibt keine Wiederherstellungsmöglichkeit, falls die Passphrase verloren geht.

Sind meine Schlüssel wirklich sicher, wenn sie im Browser erzeugt werden?

Die Kryptografie selbst ist gleichwertig – Web Crypto API und die verwendeten Bibliotheken nutzen denselben CSPRNG des Betriebssystems wie ssh-keygen. Der Unterschied liegt in der Vertrauenskette: Für Ed25519 wird eine Drittanbieter-Bibliothek (tweetnacl) nachgeladen, und Browser-Erweiterungen könnten theoretisch auf angezeigte Seiteninhalte zugreifen. Für die meisten Anwendungsfälle unproblematisch, bei hochsensiblen produktiven Zugängen ist die lokale Erzeugung mit ssh-keygen weiterhin die vorsichtigere Wahl.

Warum gibt es keine DSA- oder FIDO2/Security-Key-Option?

DSA (ssh-dss) gilt seit OpenSSH 7.0 (2015) als veraltet und ist standardmäßig deaktiviert – es gibt keinen Grund mehr, es anzubieten. FIDO2/Security-Key-Schlüssel (sk-ecdsa, sk-ssh-ed25519) benötigen zwingend einen physischen Hardware-Token per WebAuthn und lassen sich grundsätzlich nicht als reine Software-Schlüssel erzeugen.

Welchen Schlüsseltyp soll ich wählen?

Im Zweifel Ed25519 – das ist die heute empfohlene Standardwahl für neue Schlüssel. Nur wenn ein Zielsystem nachweislich kein Ed25519 unterstützt (typischerweise sehr alte oder stark eingeschränkte Server), auf RSA mit mindestens 3072 Bit ausweichen.