SSH-Schlüssel erklärt Ed25519 gegenüber ECDSA gegenüber RSA (Stoppen Sie das Drücken von Enter)
Sie gaben ssh-keygen ein, drückten Enter vier Mal und endeten mit RSA. Hier ist der Grund, warum Ed25519 die richtige Wahl ist, warum ECDSA falsch ist und die einzigen Szenarien, in denen RSA tatsächlich erforderlich ist.
Jeder Entwickler hat es schon gemacht. Sie geben ein ssh-keygenein, erscheint ein Assistent, der nach Schlüsseltyp, Bitlänge, Passphrase und Ausgabepfad fragt — und Sie drücken einfach Enter, bis das Randomart-Fingerprint erscheint. Glückwunsch, Sie haben nun einen RSA-2048-Schlüssel und haben keine Ahnung, warum diese Zahl so ist.
Kurze Antwort: verwenden Sie Ed25519. Führen Sie aus ssh-keygen -t ed25519 -C "you@example.com" und beenden Sie das Lesen von StackOverflow-Antworten aus dem Jahr 2012. Der Rest dieses Leitfaden erklärt, warum — und behandelt die legitimen Fälle, in denen RSA tatsächlich erforderlich ist.
Die drei Algorithmen
RSA
RSA (Rivest–Shamir–Adleman, 1977) war seit Jahrzehnten das Standardverfahren für öffentliche Schlüssel im Internet. Seine Sicherheit basiert auf der Schwierigkeit, große Zahlen zu faktorisieren, was bedeutet, dass große Schlüssel erforderlich sind, um sicher zu sein — mindestens 2048 Bit, idealerweise 4096 Bit. Ein 4096-Bit-RSA-öffentlicher Schlüssel beträgt etwa 800 Byte. Jede Verbindung erfordert Rechnungen mit diesen großen Zahlen, was langsamer ist als moderne Alternativen.
Der einzige echte Grund für RSA ist die Kompatibilität. Ältere SSH-Server, alte Hardware, proprietäre Netzwerkgeräte aus den frühen 2010er Jahren — alle sprechen RSA. Wenn Sie an etwas anschließen, das während der Obama-Regierung eingerichtet wurde und seitdem nie aktualisiert wurde, könnte RSA Ihre einzige Option sein.
ECDSA
ECDSA (Elliptic Curve Digital Signature Algorithm) erschien als eine schnellere und kleinere Alternative zu RSA. Ein 256-Bit-ECDSA-Schlüssel bietet etwa die gleiche Sicherheit wie ein 3072-Bit-RSA-Schlüssel. Bessere Mathematik, kleinere Schlüssel, schnellere Operationen — das klingt nach einem Sieg.
Das Problem ist, welche Kurven OpenSSH standardmäßig verwendet: die NIST-Kurven (P-256, P-384, P-521). Diese Kurven weisen eine legitime Bedenken auf. Die Beteiligung von NIST an elliptischen Kurven-Standardisierung ist historisch belastet — die Behörde half bei der Standardisierung von Dual_EC_DRBG, einem zufälligen Zahlen-Generator, der von der NSA beeinflusst wurde und später als mit einem Hinterdienst identifiziert wurde. ECDSA selbst ist nicht gebrochen, aber die Konstanten der NIST-Kurven haben eine unsichtbare Design-Logik. Niemand kann beweisen, dass sie nicht so gewählt wurden, dass jemand einen asymmetrischen Vorteil erhält. Die meisten Entwickler sind keine Ziele der NSA, aber es gibt keinen Grund, „wahrscheinlich in Ordnung“ zu akzeptieren, wenn eine beweisbar bessere Option existiert.
Ed25519
Ed25519 (EdDSA auf Curve25519) ist das, was Sie verwenden sollten. Es wurde von Daniel J. Bernstein entwickelt mit vollständig offenen Designkriterien — die Kurvenparameter werden aus „nichts-in-meiner-Schürze“-Zahlen abgeleitet, nicht aus einem unsichtbaren Gremium.
Die praktischen Zahlen: Ein Ed25519-öffentlicher Schlüssel beträgt 68 Byte. Unterschrift und Verifikation sind schneller als bei RSA und ECDSA. Der Algorithmus ist resistent gegenüber Timing-Side-Channel-Angriffen durch Konstruktion — keine geheime Abhängigkeiten, keine variable Zeitoperationen. Die Unterstützung wurde 2014 in OpenSSH 6.5 eingeführt. GitHub, GitLab und Bitbucket haben diese Funktion seit Jahren unterstützt. Es gibt keine Nachteile gegenüber ECDSA und alle Vorteile gegenüber RSA.
Nebeneinander-Vergleich
| Eigentum | RSA (4096-Bit) | ECDSA (P-256) | Ed25519 |
|---|---|---|---|
| Größe des öffentlichen Schlüssels | ~800 Byte | ~200 Byte | 68 Byte |
| Gleiche Sicherheit | ~140 Bit | ~128 Bit | ~128 Bit |
| Unterschriftsgeschwindigkeit | Langsam | Schnell | Sehr schnell |
| Resistent gegen Timing-Angriffe | NEIN | NEIN | Ja (durch Design) |
| Kurve-Vertrauensprobleme | Keiner | NIST-Kurven (umstritten) | Keine (Curve25519) |
| OpenSSH-Unterstützung seit | Immer | 5.7 (2011) | 6.5 (2014) |
| GitHub / GitLab / Bitbucket | Ja | Ja | Ja |
Wie jede Art generiert wird
Die Standardwahl — verwenden Sie diese:
ssh-keygen -t ed25519 -C "you@example.com"
Brauchen Sie ein älteres System mit RSA? Verwenden Sie mindestens 4096 Bit:
ssh-keygen -t rsa -b 4096 -C "you@example.com"
ECDSA, wenn Sie einen speziellen Grund haben, Ed25519 zu vermeiden (Sie haben wahrscheinlich keinen):
ssh-keygen -t ecdsa -b 521 -C "you@example.com"
Wenn Sie eine Benutzeroberfläche statt das Erinnern an Flags bevorzugen, dann die SSH-Schlüssel-Generator auf IO Tools erlaubt es Ihnen, den Algorithmus, die Bitlänge und Passphrase-Optionen auszuwählen, ohne an eine Terminalzeile zu gehen.
Fälle, in denen RSA tatsächlich erforderlich ist
Es gibt legitime Fälle, in denen Ed25519 nicht verfügbar ist:
- SSH-Daemon vor 2014 — alles, was OpenSSH älter als 6.5 läuft, akzeptiert Ed25519 nicht. Selten, aber real: eingebettete Systeme, Netzwerkgeräte, alte RHEL 6-Systeme, die nie aktualisiert wurden.
- FIPS-140-2-Umgebungen — staatliche und einige regulierte Unternehmensumgebungen verlangen FIPS-zertifizierte Algorithmen. Ed25519 ist nicht FIPS-zertifiziert. Verwenden Sie RSA-3072+ oder ECDSA mit P-384 in diesen Umgebungen.
- Organisatorische SSH-CA-Politik — einige Unternehmen betreiben eigene SSH-Zertifikatsbehörden mit verpflichtenden Schlüsseltyp-Anforderungen. Prüfen Sie vor der Erstellung eines Schlüssels, der bei der Anmeldung abgelehnt wird.
Außer in diesen drei Fällen ist der Grund für RSA die Inertie, nicht die Gültigkeit.
Die Passphrase, die Sie übersprungen haben
Wann ssh-keygen fordert eine Passphrase und Sie drücken Enter, um sie zu überspringen — Ihr privater Schlüssel liegt dann im Dateisystem im Klartext. Wenn jemand Ihr Laptop erhält, erhält er alles, was dieser Schlüssel zugreifbar macht — alle Server, alle Git-Hosts, alle Produktumgebungen. Fügen Sie eine Passphrase hinzu. Verwenden Sie ssh-agent damit Sie sie nur einmal pro Sitzung eingeben:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Auf macOS fügen Sie hinzu --apple-use-keychain Zu ssh-add damit die Passphrase bei Neustarts überlebt. Auf Linux starten die meisten Desktopumgebungen ssh-agent automatisch — prüfen Sie mit echo $SSH_AUTH_SOCK.
Sie drückten Enter viermal ohne zu lesen. Die Passphrase-Aufforderung ist diejenige, die Sie zurückgehen sollten.
Erweiterungen installieren
IO-Tools zu Ihrem Lieblingsbrowser hinzufügen für sofortigen Zugriff und schnellere Suche
恵 Die Anzeigetafel ist eingetroffen!
Anzeigetafel ist eine unterhaltsame Möglichkeit, Ihre Spiele zu verfolgen. Alle Daten werden in Ihrem Browser gespeichert. Weitere Funktionen folgen in Kürze!
Unverzichtbare Tools
Alle Neuheiten
AlleAktualisieren: Unser neuestes Werkzeug was added on Juni 26, 2026
