RSA, ECDSA oder Ed25519 – lokal in deinem Browser erzeugt, optional passphrase-geschützt.
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.
Generiert ein zufälliges 16-Zeichen-Passwort mit Groß-/Kleinbuchstaben, Ziffern und Sonderzeichen. Notiere es dir sicher – ohne Passphrase gibt es keine Wiederherstellung.
Was RSA, ECDSA und Ed25519 unterscheidet, welche Schlüssellänge sinnvoll ist und wann eine Passphrase Sinn ergibt.
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 (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 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.
| Typ | Schlüssellänge | Geschwindigkeit | Kompatibilität | Empfehlung |
|---|---|---|---|---|
| Ed25519 | fix, 256 Bit | sehr schnell | ab OpenSSH 6.5 (2014) | Standardwahl |
| ECDSA | 256 / 384 / 521 Bit | schnell | ab ca. 2011 | solide Alternative |
| RSA | 2048 / 3072 / 4096 Bit | langsamer bei 4096 | praktisch überall, auch uralte Server | bei Legacy-Systemen |
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.
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).
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.
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.
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.
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.