Zum Inhalt springen
ecdsa.com

SSH-Zertifikat

Eine OpenSSH-spezifische signierte Erklärung (kein X.509), in der der Schlüssel einer Zertifizierungsstelle den öffentlichen Schlüssel eines Benutzers oder Hosts an Principals, ein Gültigkeitsfenster und Optionen bindet, sodass einzelne Schlüssel nicht mehr verteilt werden müssen.
Auch geschrieben alsOpenSSH certificateSSH CATrustedUserCAKeyscert-authority

Definiert in PROTOCOL.certkeys von OpenSSH: Schlüsseltypen wie ssh-ed25519-cert-v01@openssh.com enthalten den öffentlichen Schlüssel, eine Seriennummer, den Typ (Benutzer oder Host), eine Schlüssel-ID, gültige Principals (Benutzer- oder Hostnamen), die Zeitpunkte valid after und valid before, kritische Optionen (force-command, source-address) und Erweiterungen (permit-pty, permit-port-forwarding). Der Befehl ssh-keygen -s ca_key -I id -n alice -V +8h user_key.pub stellt ein solches Zertifikat aus.

Server vertrauen Benutzerzertifikaten über TrustedUserCAKeys (optional mit einer Zuordnung von Principals über AuthorizedPrincipalsFile); Clients vertrauen Hostzertifikaten über eine Zeile @cert-authority in known_hosts. Für den Widerruf gibt es eine Sperrliste für Schlüssel (Key Revocation List, RevokedKeys), der übliche Ansatz sind aber Zertifikate mit kurzer Laufzeit (Stunden), ausgestellt von einer an Single Sign-On angebundenen CA wie bei step-ca, Teleport oder Vault.

Anders als bei X.509 gibt es keine Ketten: Jedes Zertifikat wird direkt von einem CA-Schlüssel signiert, der deshalb wie ein Root-Schlüssel geschützt werden muss.

Standards und Quellen

Alle Begriffe