Ich habe eine Umgebung, in der ich SSH-Zertifikate zur Authentifizierung von SSH-Hostschlüsseln verwende. Ich spreche über die Art von Zertifikaten, die durch Ausführen erstellt werden ssh-keygen -s /path/to/ca -h ...
. Diese Zertifikate werden auch mit einem Gültigkeitsintervall erstellt, in dem angegeben ist, wann sie ablaufen. Diese Zertifikate werden jetzt schon lange genug verwendet, damit ich sie überwachen kann, um einen Überblick zu erhalten, wenn sie kurz vor dem Ablauf stehen.
Auf jede Art und Weise kann ich eine Remoteverbindung herstellen, ohne mich anzumelden, und irgendwie wird entweder das Gültigkeitsintervall alt angezeigt. das Zertifikat herunterladen lassen? Laufen ssh -vvv
scheint nicht die Informationen anzuzeigen, die ich brauche. Beides scheint ssh-keyscan
nicht zertifikatsbewusst zu sein. Vielleicht eine Bibliothek, die ich mir nicht genau genug angesehen habe?
Im schlimmsten Fall kann ich immer ein Überwachungs-Plugin schreiben, das lokal ausgeführt wird und dessen Ausgabe analysiert ssh-keygen -L -f
. Trotzdem fühlt sich ein Remote-Scan wirklich wie der bevorzugte Ansatz an.
quelle
ssh -vvv
mit einem zertifizierten Hostschlüssel mit dem Aussehen eines normalen Hostschlüssels könnte einen Hinweis darauf geben, wo nach einer Antwort gesucht werden soll.Antworten:
Dies ist möglich, es fehlt jedoch die Werkzeugunterstützung. Ich habe eine Bibliothek gefunden, die das SSH-Protokoll gut genug spricht, damit ich ein Tool schreiben kann, um das Host-Zertifikat valid_before time ohne vollständige ssh-Anmeldung zu extrahieren. Hier ist es in der Go-Sprache. Ich hoffe, es hilft.
(Anweisungen zur schnellen Verwendung: Installieren Sie Go , speichern Sie den oben in sshcertscan.go gezeigten Code, führen Sie ihn aus
go build sshcertscan.go
und zeigen Sie ihn auf einen ssh-Server auf examplehost Port 22 mit./sshcertscan examplehost:22
.)quelle
Leider kenne ich kein Open-Source-Tool. Es scheint, dass nmap es irgendwie mit NSE- Skripten abrufen kann (muss aber angepasst werden - check / usr / share / nmap / scripts).
Der Tectia SSH- Server von SSH enthält ein Tool namens ssh-fetchkey, mit dem das Zertifikat abgerufen wird. Anschließend können Sie die Details mit ssh-certview anzeigen.
quelle
Ich fürchte, die Antwort lautet "das ist nicht möglich". Zumindest in keiner Weise, die ich gefunden habe, entweder mit dem openssh-Client oder der paramiko SSH-Bibliothek für Python. Ich würde eine lokale Prüfung vorschlagen, wie Sie sie beschrieben haben, kombiniert mit einer einfacheren Fernprüfung, die bestätigt, dass der von SSHD verwendete Schlüssel der Schlüssel ist, dessen Lebensdauer Sie gerade überprüft haben.
quelle