
Wir möchten eine Verbindung mit OpenSSH unter Verwendung von X509-Zertifikaten testen mitpkixssh-Fork von Roumen Petrov.
Ich verstehe nicht wirklich, wie die vollständige Authentifizierung funktioniert und insbesondere, wie man die Zertifikate mit X509-Standards zur Validierung öffentlicher Schlüsselzertifikate erstellt.
Ich werde also zunächst erklären, wie ich es verstehe und den gesamten Prozess, den ich befolgen werde, um eine Verbindung zwischen einem"Klient"und ein"Server"Maschine mit PKIXSSH Fork von OpenSSH, unter Verwendung von X509-Zertifikaten. Für den Test verwenden wir eine dritte Maschine, die wir"Steuermaschine", Maschine, die als „Zertifizierungsstelle“ fungiert
Um zu verstehen, wie es funktioniert, habe ich die folgenden Dokumente gelesen:
- „Skalierbarer und sicherer Zugriff mit SSH“, von Facebook: sehr nützlich, um zu verstehen, welche Rolle eine Zertifizierungsstelle bei der Validierung öffentlicher Schlüssel spielt.
- „HOWTO SSH- und X509-Zertifikate“, aus den Gentoo-Diskussionsforen: Ein wirklich gutes und notwendiges Howto
- „Zertifikate x509 für SSH“, Beitrag aus dem Blog "Linux Attitude": ein weiteres Howto, dieses Mal auf Französisch
Kurz zusammengefasst und wenn ich es richtig verstanden habe, funktioniert es so:
- X509 ist ein Standard zum Signieren öffentlicher Schlüssel. Signierte öffentliche Schlüssel gelten als gültig, wenn die Zertifizierungsstelle bekannt ist.
- Wir können öffentliche Schlüssel für Hosts und Benutzer signieren
- Mit X509-Zertifikaten können wir uns bei einem OpenSSH-Server anmelden, ohne Passwörter zu verwenden und ohne die traditionelle OpenSSH-Private-Public-Key-Authentifizierung zu verwenden. Das bedeutet, dassEs müssen keine öffentlichen Benutzerschlüssel auf Zielserver kopiert werden.
- Wenn wir X509-Zertifikate für Hosts verwenden, vertraut der Client dem OpenSSH-Server, ohne dass sein öffentlicher Schlüssel manuell zur Datei „known_host“ hinzugefügt werden muss.
Wir wollen zwei Tests durchführen:
- Testen Sie die Verbindung für einen Benutzer vom Clientcomputer zum Server mithilfe eines X509-Zertifikats
- Im zweiten Schritt fügen Sie die Authentifizierung für den Server-Host hinzu
Ich bin zu dem Schluss gekommen, dass die nächsten Schritte befolgt werden müssen
In der „Kontrollmaschine“:
- Konfigurieren und erstellen Sie die Schlüssel für unsere Testzertifizierungsstelle
- Senden Sie den öffentlichen Zertifizierungsstellenschlüssel an den OpenSSH-Daemon der "Server"-Maschine, damit unsere CA erkannt wird
Auf der „Client“-Maschine:
- Erstellen Sie den privaten und öffentlichen Schlüssel für den Benutzer
- Senden Sie den öffentlichen Schlüssel an die Steuermaschine, damit er vom CA signiert werden kann.
- Fügen Sie das Zertifikat zur privaten Schlüsseldatei hinzu, damit es dem Server angezeigt wird
An diesem Punkt sollte alles an seinem Platz sein, so dass wir die Verbindung testen können
Habe ich es richtig verstanden?
Antwort1
Endlich habe ich den Zusammenhang verstanden und getestet :-).
Ich habe einen Beitrag in einem Blog geschrieben, das ich gerade bereitgestellt habe (auf die schnelle und einfache Art und Weise; das Blog ist einfach und nicht sehr schön, aber nützlich).
Eine vollständige Beschreibung des Tests finden Sie im Artikel„OpenSSH mit X509-Zertifikaten – Anleitung“
Vielen Dank an Roumen Petrov für seine Antworten auf meine E-Mail in der Mailingliste des Produkts.