So widerrufen Sie ein SSH-Zertifikat (keine SSH-Identitätsdatei!)

13

Ich habe ein SSH-Zertifikat wie folgt erstellt:

  1. ssh-keygen -f ca_key # ein SSH-Schlüsselpaar zur Verwendung als Zertifikat generieren
  2. einen Hostschlüssel generieren ssh-keygen -s ca_key -I cert_identifier -h host_key.pub
  3. Geben Sie den Host-Schlüssel in der sshd-Konfigurationsdatei des Servers an: TrustedUserCAKeys /etc/ssh/ssh_cert/host_key.pub
  4. eine lokale Zertifikat erzeugen , um die Host - Zertifikat unter Verwendung eines SSH zuzugreifen: ssh-keygen -s ca_key -I cert_identifier user_key.pub. Dies sollte user_key-cert.pub erzeugen

Ich kann mich jetzt mit dem Server anmelden ssh -i user_key user@host(der user_key-cert.pub verwendet). Wie kann ich das Zertifikat außer dem Deaktivieren der TrustedUserCAKeys-Datei widerrufen?

rorycl
quelle
Es gibt eine Diskussion darüber auf der OpenSh-Liste hier gossamer-threads.com/lists/openssh/dev/… - Ich glaube nicht, dass es eine elegante Möglichkeit gibt, ein Zertifikat zu widerrufen.
Rorycl

Antworten:

13

sshd_config hat eine RevokedKeys-Datei. Sie können mehrere Schlüssel oder Zertifikate auflisten, einen pro Zeile. In Zukunft wird OpenSSH die Sperrung nach Zertifikatseriennummer unterstützen, wodurch die Sperrlisten erheblich verkleinert werden.

Damien Miller
quelle
-3

Diese könnten für Sie von Interesse sein:

CARevocationFile /path/to/bundle.crl Diese Datei enthält mehrere "Certificate Revocation List" (CRL) von Zertifikatsignierern im PEM-Format, die zusammen verkettet sind.

CARevocationPath / path / to / CRLs / "Hash dir" mit "Certificate Revocation List" (CRL) der Zertifikatssignierer. Jede CRL sollte in einer separaten Datei mit dem Namen [HASH] .r [NUMBER] gespeichert werden, wobei [HASH] der CRL-Hashwert und [NUMBER] eine Ganzzahl ist, die bei Null beginnt. Hash ergibt sich aus dem Befehl wie folgt: $ openssl crl -in crl-dateiname -noout -hash

(Die ersten 3 Google-Treffer bei der Suche nach "ssh ca revoke" ...)

draeath
quelle
ssh-Zertifikate verwenden keine PEM-Format-Zertifikate, sondern ein eigenes Format. Dies funktioniert also nicht.
Rorycl
OpenSSH implementiert CARevocationFile nicht, als ich es das letzte Mal überprüft habe (möglicherweise wurde es kürzlich geändert).
Chris S
1
Hmm, du hast recht. Ich denke nicht, dass das möglich ist.
draeath