Authentifizierung mit öffentlichen Schlüsseln und Agent-Weiterleitung
Verstehen Sie authorized_keys, Ed25519- und RSA-Schlüssel sowie die Sicherheitsauswirkungen der SSH-Agent-Weiterleitung.
Authentifizierung mit öffentlichen Schlüsseln und Agent-Weiterleitung ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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.
Dateiformat von authorized_keys
Die Authentifizierung mit öffentlichen SSH-Schlüsseln basiert auf der Datei authorized_keys, die sich auf dem Server normalerweise unter ~/.ssh/authorized_keys befindet. Jede Zeile enthält einen öffentlichen Schlüssel im Format: algorithm base64-key comment. Der Server überprüft, ob der Client den Besitz des zugehörigen privaten Schlüssels durch das Signieren einer Challenge nachweisen kann.
SSH-Schlüssel mit ssh-keygen generieren
Der Befehl ssh-keygen erstellt Schlüsselpaare zur Authentifizierung. Wenn Sie ssh-keygen -t ed25519 ausführen, wird ein modernes Ed25519-Schlüsselpaar erzeugt. Mit -C können Sie einen Kommentar zur Identifizierung angeben, beispielsweise Ihre E-Mail-Adresse. Das Tool speichert den privaten Schlüssel (id_ed25519) und den öffentlichen Schlüssel (id_ed25519.pub) standardmäßig unter ~/.ssh.
Schlüsseltypen vergleichen: RSA, ECDSA, Ed25519
RSA-Schlüssel mit 4096 Bit sind mit älteren Systemen sehr kompatibel, signieren jedoch langsamer. ECDSA mit NIST P-256 ist schneller und erzeugt kleinere Signaturen, doch manche Kryptografen stellen die Auswahl der NIST-Kurvenparameter infrage. Ed25519 auf Basis von Curve25519 gilt derzeit als Best Practice: schnelle, kleine Schlüssel und Signaturen, keine bekannten Schwachstellen und Verfügbarkeit in allen modernen SSH-Implementierungen.
Passphrasengeschützte private Schlüssel
Die Datei mit dem privaten Schlüssel sollte durch eine Passphrase geschützt werden. ssh-keygen verschlüsselt den privaten Schlüssel mit einem aus der Passphrase abgeleiteten Schlüssel (bei modernen Schlüsseln mit bcrypt), sodass ein Angreifer, der die Datei stiehlt, sie ohne die Passphrase nicht verwenden kann. Ohne Passphrase kann jeder mit Zugriff auf die Datei sich bei jedem Server authentifizieren, der den zugehörigen öffentlichen Schlüssel besitzt.
ssh-agent zur Schlüsselverwaltung
Der ssh-agent-Daemon hält entschlüsselte private Schlüssel während einer Anmeldesitzung im Arbeitsspeicher. Sie laden einen Schlüssel mit ssh-add ~/.ssh/id_ed25519. Dabei werden Sie einmalig nach der Passphrase gefragt. Bei nachfolgenden SSH-Verbindungen bittet der Client den Agenten, Challenges zu signieren, ohne dass Sie die Passphrase erneut eingeben müssen. So werden Sicherheit und Komfort miteinander verbunden.
So signiert ssh-agent Challenges
Wenn ein SSH-Server eine Authentifizierungs-Challenge sendet, delegiert der SSH-Client die Signatur über einen Unix-Socket an ssh-agent. Der Agent führt die kryptografische Signatur mit dem im Arbeitsspeicher gespeicherten privaten Schlüssel aus und gibt nur die Signatur zurück. Die Bytes des privaten Schlüssels verlassen den Agent-Prozess niemals, nicht einmal in Richtung des SSH-Clients.
Agent-Weiterleitung: Möglichkeiten und Risiken
Die Agent-Weiterleitung (ForwardAgent yes oder ssh -A) ermöglicht es einer entfernten SSH-Sitzung, Ihren lokalen Agenten für die weitere Authentifizierung zu verwenden. Das ist nützlich, wenn Sie über Bastion-Hosts springen möchten, ohne private Schlüssel auf die Bastion zu kopieren. Wird die Bastion jedoch kompromittiert, kann ein Root-Benutzer dort auf Ihren Agent-Socket zugreifen und sich bei jedem Server als Sie authentifizieren.
ProxyJump vs. ForwardAgent für Bastion-Hosts
ProxyJump (ssh -J bastion target) ist die sicherere Alternative zu ForwardAgent für den Zugriff über Bastion-Hosts. Dabei wird ein TCP-Tunnel durch die Bastion eingerichtet, ohne dort Ihren Agent-Socket offenzulegen. Der Zielserver erhält eine direkte Verbindung von Ihrem lokalen Client, während die Bastion nur verschlüsselte TCP-Daten weiterleitet und Ihre Zugangsdaten nicht verwenden kann.
SSH-Zertifikatsauthentifizierung
SSH unterstützt die zertifikatsbasierte Authentifizierung, bei der eine Certificate Authority (CA) öffentliche Host- und Benutzerschlüssel signiert. Statt einzelne öffentliche Schlüssel auf jedem Server zu verteilen, konfigurieren Sie die Server so, dass sie Ihrer CA vertrauen. Ein signiertes Benutzerzertifikat gewährt Zugriff auf alle Server, die dieser CA vertrauen. Ablaufzeit und Einschränkungen für Principals können optional im Zertifikat hinterlegt werden.
ssh-keyscan zum Sammeln vieler Schlüssel
Das Tool ssh-keyscan verbindet sich mit einem oder mehreren Hosts und ruft deren öffentliche Hostschlüssel ohne Authentifizierung ab. Das ist nützlich, um die Dateien known_hosts in Deployment-Skripten automatisiert zu befüllen. Die Ausgabe kann direkt in eine known_hosts-Datei weitergeleitet werden: ssh-keyscan -H example.com >> ~/.ssh/known_hosts.
Zusammenfassung des Schlüsselauthentifizierungsablaufs
Authentifizierung mit öffentlichen Schlüsseln: Der Client sendet den öffentlichen Schlüssel, der Server überprüft authorized_keys, der Server sendet eine mit der Sitzungskennung signierte Challenge, der Client signiert sie (über den Agenten) mit dem privaten Schlüssel, und der Server überprüft die Signatur mithilfe des gespeicherten öffentlichen Schlüssels. Ist sie gültig, gelingt die Authentifizierung, ohne dass ein geheimes Zugangsmittel übertragen wird.
Auswahl des SSH-Schlüsseltyps
Welcher SSH-Schlüsseltyp gilt aufgrund seiner Geschwindigkeit, seiner geringen Schlüssellänge und seiner starken Sicherheitseigenschaften derzeit als Best Practice für neue Deployments?
Zusammenfassung der Public-Key-Authentifizierung
Die wichtigsten Punkte: Speichern Sie öffentliche Schlüssel in authorized_keys, schützen Sie private Schlüssel mit Passphrasen, verwenden Sie ssh-agent, um entschlüsselte Schlüssel im Arbeitsspeicher zu halten, bevorzugen Sie den Schlüsseltyp Ed25519, verwenden Sie für den Zugriff über Bastion-Hosts ProxyJump statt ForwardAgent, um den Agent-Socket nicht offenzulegen, und ziehen Sie SSH-Zertifikate für eine skalierbare Zugriffsverwaltung in Betracht.
Häufig gestellte Fragen
Ist die Lektion „Authentifizierung mit öffentlichen Schlüsseln und Agent-Weiterleitung“ kostenlos?
Ja — der vollständige Text von „Authentifizierung mit öffentlichen Schlüsseln und Agent-Weiterleitung“ 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 „Authentifizierung mit öffentlichen Schlüsseln und Agent-Weiterleitung“?
Verstehen Sie authorized_keys, Ed25519- und RSA-Schlüssel sowie die Sicherheitsauswirkungen der SSH-Agent-Weiterleitung. 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 2 von 4.
Wie lange dauert die Lektion „Authentifizierung mit öffentlichen Schlüsseln und Agent-Weiterleitung“?
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