Was ist ein SSH-Schlüsselpaar?

Ein SSH-Schlüsselpaar ist ein Satz von zwei kryptografischen Schlüsseln, die zur Authentifizierung eines Benutzers auf einem Remote-Server ohne Passwort verwendet werden. Das Paar besteht aus einem privaten Schlüssel, der geheim auf dem Computer des Benutzers aufbewahrt wird, und einem öffentlichen Schlüssel, der auf dem Remote-Server platziert wird. Bei der Verbindung fordert der Server den Client auf, den Besitz des privaten Schlüssels nachzuweisen – ohne den privaten Schlüssel selbst zu übertragen. Dieser asymmetrische Ansatz ist erheblich sicherer als passwortbasierte Authentifizierung, da es kein gemeinsames Geheimnis gibt, das abgefangen oder durch Brute-Force angegriffen werden kann.

SSH-Schlüsselpaare werden mit Algorithmen der Public-Key-Kryptografie generiert. Die am weitesten verbreiteten sind Ed25519, ein moderner Elliptic-Curve-Algorithmus, der für seine kleine Schlüsselgröße und hohe Sicherheit bekannt ist, und RSA, ein bewährter Algorithmus, der auf der Schwierigkeit der Faktorisierung großer Ganzzahlen basiert. Ed25519 wird für neue Schlüssel empfohlen, da es überlegene Leistung und Widerstand gegen Side-Channel-Angriffe bietet.

Werkzeugbeschreibung

Der SSH-Schlüsselpaar-Generator erstellt kryptografisch sichere Ed25519- oder RSA-SSH-Schlüsselpaare direkt in Ihrem Browser mit der Web Crypto API. Es werden keine Daten an einen Server gesendet – das gesamte Schlüsselmaterial wird lokal auf Ihrem Gerät generiert. Sie können optional einen Kommentar (typischerweise user@hostname) hinzufügen, um den Schlüssel später zu identifizieren. Die generierten öffentlichen und privaten Schlüssel können in die Zwischenablage kopiert oder als Dateien heruntergeladen werden, bereit zur Verwendung mit ssh-copy-id oder einem beliebigen SSH-Client.

Beispiele

Ed25519 öffentlicher Schlüssel

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl user@hostname

RSA öffentlicher Schlüssel (4096-Bit)

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC2... user@hostname

Privater Schlüssel (OpenSSH-Format)

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAAB...
-----END OPENSSH PRIVATE KEY-----

Funktionen

  • Ed25519- und RSA-Unterstützung: Wählen Sie zwischen einem modernen Elliptic-Curve-Algorithmus oder dem klassischen RSA-Algorithmus
  • RSA-Schlüsselgrößenoptionen: Wählen Sie 2048-, 3072- oder 4096-Bit-RSA-Schlüssel, um Sicherheit und Leistung auszugleichen
  • Optionales Kommentarfeld: Fügen Sie einen Kommentar im Stil user@hostname an, um den Schlüssel auf mehreren Computern zu identifizieren
  • Client-seitige Generierung: Schlüssel werden vollständig in Ihrem Browser mit der Web Crypto API generiert – nichts wird übertragen oder gespeichert
  • Download mit einem Klick: Speichern Sie die öffentlichen und privaten Schlüsseldateien direkt mit korrekten Dateinamen (id_ed25519, id_ed25519.pub, id_rsa, id_rsa.pub)

Anwendungsfälle

  • Server-Zugriff einrichten: Generieren Sie ein Schlüsselpaar einmal und stellen Sie den öffentlichen Schlüssel auf eine beliebige Anzahl von Remote-Linux/Unix-Servern über ~/.ssh/authorized_keys bereit, um passwortloses SSH-Login zu ermöglichen
  • Git-Hosting-Authentifizierung: Fügen Sie den öffentlichen Schlüssel zu GitHub, GitLab oder Bitbucket hinzu, um git push- und git pull-Operationen zu authentifizieren, ohne jedes Mal Anmeldedaten einzugeben
  • CI/CD-Pipelines: Erstellen Sie ein dediziertes Deployment-Schlüsselpaar für automatisierte Skripte oder Build-Agenten, die SSH-Zugriff auf Server oder private Repositories benötigen

Funktionsweise

Die Schlüsselgenerierung verwendet die integrierte crypto.subtle API des Browsers (Web Crypto). Bei Ed25519 werden der rohe 32-Byte-Private-Scalar und der 32-Byte-öffentliche Schlüssel in das OpenSSH-Wire-Format (openssh-key-v1) gepackt. Bei RSA wird der Schlüssel im PKCS#8-DER-Format exportiert und in eine Standard-PEM-Hülle eingewickelt. Das öffentliche Schlüssel-Blob wird im SSH-Wire-Format (längenpräfixierter Algorithmusname gefolgt von Schlüsselmaterial) codiert und Base64-codiert, was dem Format entspricht, das von OpenSSH's authorized_keys-Datei erwartet wird.

Tipps

  • Legen Sie nach dem Herunterladen die korrekten Berechtigungen für die private Schlüsseldatei fest: chmod 600 ~/.ssh/id_ed25519. SSH weigert sich, einen privaten Schlüssel zu verwenden, der für andere Benutzer lesbar ist.
  • Verwenden Sie Ed25519, es sei denn, Sie benötigen Kompatibilität mit älteren Systemen, die es nicht unterstützen. Es erzeugt kürzere Schlüssel und ist schneller als RSA.
  • Das Kommentarfeld beeinflusst nicht die kryptografische Stärke des Schlüssels – es dient nur der menschlichen Identifikation und kann später mit ssh-keygen -c geändert werden.
  • Verwenden Sie für maximale RSA-Kompatibilität mit Legacy-Servern 4096-Bit-Schlüssel. Für moderne Server wird Ed25519 unabhängig von der RSA-Schlüsselgröße bevorzugt.