SSH-Handshake und Host-Key-Authentifizierung
Verfolgen Sie den SSH-2-Handshake: Versionsaustausch, Algorithmenverhandlung, Schlüsselaustausch und Dienstauthentifizierung.
SSH-Handshake und Host-Key-Authentifizierung ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cryptology Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.
TCP-Verbindung über Port 22
SSH beginnt mit einer TCP-Verbindung zu Port 22. Sobald diese hergestellt ist, tauschen Client und Server Versionszeichenfolgen wie SSH-2.0-OpenSSH_9.3 aus, die die Protokollversion und die Implementierung angeben. Durch diesen Versionsaustausch können beide Seiten die Kompatibilität bestätigen, bevor sie fortfahren.
Phase der Algorithmusaushandlung
Nach dem Versionsaustausch senden beide Parteien SSH_MSG_KEXINIT-Pakete, in denen sie ihre unterstützten Algorithmen auflisten. Diese Listen umfassen Schlüsselaustauschverfahren, Hostschlüsseltypen, symmetrische Verschlüsselungsverfahren, MAC-Algorithmen und Komprimierung. Der Schnittpunkt beider Listen bestimmt die für die Sitzung ausgewählten Algorithmen.
Diffie-Hellman- und ECDH-Schlüsselaustausch
Der Sitzungsschlüssel wird mithilfe eines Schlüsselaustauschalgorithmus wie Diffie-Hellman oder ECDH festgelegt. Client und Server erzeugen jeweils ein kurzlebiges Schlüsselpaar, tauschen öffentliche Werte aus und berechnen unabhängig voneinander dasselbe gemeinsame Geheimnis. Dieses gemeinsame Geheimnis dient als Grundlage für die Ableitung des Sitzungsschlüssels, ohne jemals direkt übertragen zu werden.
Authentifizierung des Server-Hostschlüssels
Der Server weist seine Identität nach, indem er den Hash des Schlüsselaustauschs mit seinem privaten Hostschlüssel signiert. Der Hostschlüssel kann im RSA-, ECDSA- oder modernen Ed25519-Format vorliegen. Der Client verwendet den zugehörigen öffentlichen Schlüssel, um diese Signatur zu überprüfen. So wird bestätigt, dass er mit dem echten Server und nicht mit einem Angreifer kommuniziert.
Vertrauen bei erstmaliger Verwendung (TOFU)
Bei der ersten Verbindung zu einem neuen Server kennt der Client den öffentlichen Hostschlüssel noch nicht. SSH zeigt den Fingerabdruck des Schlüssels an und fordert Sie auf, ihn zu akzeptieren. Dieses Modell des Vertrauens bei erstmaliger Verwendung speichert den Schlüssel in known_hosts und erkennt Änderungen bei späteren Verbindungen, wobei vor möglichen Man-in-the-Middle-Angriffen gewarnt wird.
Überprüfung des Hostschlüssel-Fingerabdrucks
Am sichersten überprüfen Sie einen neuen Server-Hostschlüssel über einen unabhängigen Kommunikationskanal. Ein Administrator kann den Fingerabdruck des Servers persönlich oder über einen verifizierten sicheren Kanal mitteilen. Anschließend vergleichen Sie ihn mit dem vom SSH-Client angezeigten Fingerabdruck. Dadurch wird verhindert, dass bei der ersten Verbindung unbemerkt ein gefälschter Schlüssel akzeptiert wird.
Struktur der known_hosts-Datei
Die Datei known_hosts speichert Zeilen im Format: hostname algorithm base64-key. Jeder Eintrag steht für eine vertrauenswürdige Serveridentität. Wenn Sie eine bereits in known_hosts enthaltene Hostadresse verbinden, überprüft SSH, ob der präsentierte Schlüssel mit dem gespeicherten übereinstimmt. Bei einer Abweichung wird die Verbindung abgelehnt.
Ableitung der Sitzungsschlüssel
Nach dem Schlüsselaustausch leiten beide Seiten unabhängig voneinander Sitzungsschlüssel aus dem gemeinsamen Geheimnis, dem Hash des Schlüsselaustauschs und der Sitzungskennung ab. Für jede Kommunikationsrichtung sowie getrennt für Verschlüsselungs- und MAC-Operationen werden eigene Schlüssel abgeleitet. Daher unterscheiden sich die für den Datenverkehr vom Client zum Server verwendeten Schlüssel von den Schlüsseln für die Gegenrichtung.
Phase der verschlüsselten Kommunikation
Sobald die Sitzungsschlüssel festgelegt sind, wird die gesamte weitere SSH-Kommunikation verschlüsselt und authentifiziert. Das ausgehandelte Verschlüsselungsverfahren, beispielsweise AES-256-GCM oder ChaCha20-Poly1305, schützt die Vertraulichkeit, während der MAC die Integrität sicherstellt. Selbst der Benutzername und die Authentifizierungsdaten werden innerhalb dieses verschlüsselten Tunnels übertragen.
Hostschlüsseltypen von SSH im Vergleich
RSA-Hostschlüssel mit 2048 oder 4096 Bit werden weithin unterstützt, sind jedoch langsamer. Auf NIST-Kurven basierende ECDSA-Schlüssel sind schneller, doch manche Fachleute misstrauen den Parametern der NIST-Kurven. Ed25519-Schlüssel auf Basis von Curve25519 gelten als moderne Empfehlung: Sie sind klein, schnell und bieten hohe Sicherheit, ohne von NIST-Kurvenparametern abhängig zu sein. Die meisten modernen SSH-Server bieten Ed25519 standardmäßig an.
Zusammenfassung des Sitzungsaufbaus
Der SSH-Handshake umfasst: TCP-Verbindung, Versionsaustausch, Algorithmusaushandlung, Schlüsselaustausch zur Festlegung der Sitzungsschlüssel, Überprüfung des Server-Hostschlüssels und Benutzerauthentifizierung. Alle Schritte nach dem Versionsaustausch finden innerhalb eines verschlüsselten und gegen Manipulation geschützten Kanals statt, der durch die Schlüsselaustauschphase eingerichtet wurde.
Überprüfung des Hostschlüssels
Wie überprüft ein Client den Hostschlüssel des SSH-Servers bei späteren Verbindungen nach der ersten Verbindung?
Zusammenfassung des SSH-Handshakes
In dieser Lektion: TCP stellt eine Verbindung über Port 22 her, Versionszeichenfolgen werden ausgetauscht, die Algorithmusaushandlung wählt Verschlüsselungsverfahren und Schlüsselaustauschmethoden aus, ECDH oder DH legt ein gemeinsames Geheimnis fest, Sitzungsschlüssel werden für jede Richtung getrennt abgeleitet, der Server authentifiziert sich mit seiner Hostschlüssel-Signatur, und der Client überprüft den Schlüssel anhand von known_hosts, wobei bei der ersten Verbindung TOFU verwendet wird.
Häufig gestellte Fragen
Ist die Lektion „SSH-Handshake und Host-Key-Authentifizierung“ kostenlos?
Ja — der vollständige Text von „SSH-Handshake und Host-Key-Authentifizierung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cryptology Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „SSH-Handshake und Host-Key-Authentifizierung“?
Verfolgen Sie den SSH-2-Handshake: Versionsaustausch, Algorithmenverhandlung, Schlüsselaustausch und Dienstauthentifizierung. Du übst Cryptology Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Cryptology Academy zu starten?
Keine Vorkenntnisse erforderlich. Cryptology Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „SSH-Handshake und Host-Key-Authentifizierung“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Cryptology Academy-Lektion Code schreiben und ausführen?
Ja. Jede Cryptology Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- SSH-Handshake und Host-Key-Authentifizierung
- Authentifizierung mit öffentlichen Schlüsseln und Agent-Weiterleitung
- SSH-Tunneling und Port-Forwarding-Techniken
- SSH-Härtung und Best Practices für Audits