%20.png)
In jeder Firma, in der ich gearbeitet habe, war es immer ein nerviges Unterfangen, SSH-Schlüssel zu verwalten. Wir hatten verschiedene Möglichkeiten, sie zu verwalten. Aber meistens waren es CM-Systeme wie Puppet/Chef/Ansible oder einfach manuelles Kopieren von Schlüsseln oder sogar einige hässliche Bash-Skripte :D
Habe auch gehört, dass manche Leute LDAP oder eine beliebige Datenbank als SSH-Schlüsselspeicher verwenden. Aber trotzdem braucht man hier zusätzliche Automatisierung, wie etwa ein CM-Tool, um Schlüssel auf dem Server abzulegen/zu löschen.
Die Frage ist also, ob es eine nette und moderne Möglichkeit gibt, dies zu tun, die ich nicht kenne. Wie gehen große IT-Unternehmen (wie Google oder Facebook usw.) mit Schlüsseln um?
Antwort1
(Meta: Meiner Meinung nach basiert diese Frage nicht auf Meinungen.)
Wenn Sie relativ moderne Linux-/Unix-Versionen mit relativ aktuellem OpenSSH verwenden, können Sie OpenSSH-Zertifikate verwenden. Wenn Sie mit MFA eine Art „Ticket“-Gefühl haben möchten, können Sie temporäre OpenSSH-Zertifikate ausstellen.
Der Punkt bei OpenSSH-Zertifikaten ist, dass das einzige, was auf der Seite von sshd installiert werden muss, der öffentliche Schlüssel der SSH-CA ist, auf den mit der Direktive verwiesen wirdTrustedUserCAKeys in sshd_config.
Mit den RichtlinienAutorisierte Auftraggeber*Sie können auch eine Reihe von Prinzipalnamen (im Wesentlichen die Benutzernamen) in OpenSSH-Zertifikaten für ein anderes lokales Benutzerkonto akzeptieren.
OpenSSH-Zertifikate sind keine X.509-Zertifikate, sie haben ein anderes Format, das im Quellbaumdokument angegeben istPROTOKOLL.certkeys.
Sie finden mehrere Webseiten zur Verwendungssh-keygenum öffentliche Schlüssel mit einer SSH-CA zu signieren (zBVerwenden von SSH-Zertifikaten).
Ich habe für einen Kunden eine solche kleine SSH-CA implementiert, die als Webdienst läuft, um temporäre Benutzerzertifikate basierend auf einer Multi-Faktor-Authentifizierung (LDAP und OTP) auszustellen.
An den üblichen Stellen finden Sie mehrere Open-Source-Implementierungen. Ich gebe hier bewusst keine Liste an, da ich nach der Überprüfung einiger Implementierungen meine eigene implementiert habe und daher keine bestimmte Implementierung empfehlen möchte. Dies bedeutet nicht, dass diese Implementierungen nicht funktionieren. Sie haben nur meine spezifischen Kundenanforderungen nicht erfüllt.
Vorbehalt:
Derzeit funktioniert es nur mitOpenSSHoderlibsshauf der Clientseite.Kittunterstützt dies noch nicht. Außerdem gibt es keine Unterstützung für Netzwerkgeräte und andere spezielle Appliances.
PS: Ich würde trotzdem die Verwendung einer vernünftigen LDAP-basierten Benutzerverwaltung empfehlen, die Ihnen mehr bietet, als Sie brauchen.