Wir möchten auf die schlüsselbasierte Verwaltung von SSH-Anmeldungen umsteigen und fragen uns, ob es Schlüsselverwaltungssysteme gibt, mit denen wir die Zugriffsschlüssel weltweit zentral verwalten können.
Das System sollte idealerweise die Ausgabe von Schlüsseln pro Client und deren Widerruf ermöglichen, um die Server-Computer-Schlüssel sofort zu aktualisieren.
Kennt jemand ein solches System, entweder kommerziell oder Open Source?
HINWEIS: Zur Verdeutlichung benötigen wir die Schlüsselverwaltung für eine große Anzahl von Cloud-Servern (EC2-ähnlich) und eine kleine Anzahl von Dienstbenutzern. Ich denke, LDAP + -Patch könnte der richtige Weg sein.
Antworten:
Dafür gibt es viele Möglichkeiten. Die Speicherung von LDAP-Schlüsseln wurde einige Male erwähnt, und das habe ich getan, und es funktioniert, soweit es geht. LDAP hat jedoch seine eigenen Management-Besonderheiten, die einiges an Lernen erfordern.
Ich bin ein großer Fan von einfachen, robusten Servern mit minimalen externen Netzwerkabhängigkeiten für einfache Dinge wie die Authentifizierung von Administratoren. Daher neige ich zu einer weitaus robusteren Strategie für die Verteilung von SSH-Schlüsseln. Der öffentliche Schlüssel eines jeden Benutzers wird im Konfigurationsverwaltungssystem gespeichert. Überall, wo sich die Person anmelden muss, wird ihr Schlüssel hinzugefügt. Das Konfigurationssystem kann auch Schlüssel entfernen, die nicht angegeben wurden. Wenn also jemand das System verlässt oder deren Schlüssel sich ändert, müssen Sie lediglich die Schlüsselkonfiguration entfernen und beim nächsten Start des Konfigurationssystems den Schlüssel entfernen.
quelle
Schlüsselpaare sollten vom Benutzer generiert werden.
Der Benutzer behält die private Hälfte - Sie sollten sie niemals sehen. Wenn Sie den privaten Schlüssel einer Person in einem Formular haben, in dem Sie ihn lesen / verwenden können, machen Sie Sicherheitsfehler.
Die öffentliche Hälfte erhalten Sie (durch einen beliebigen Mechanismus: Webformular, E-Mail, Gib-es-mir-auf-eine-CD), um zentralisiert zu werden, wie Sie möchten. An einigen Stellen werden die öffentlichen Schlüssel in LDAP gespeichert. Andere verteilen
authorized_keys
Dateien mithilfe ihres Bereitstellungssystems.In meiner Umgebung geben Benutzer, die Shell-Zugriff benötigen, mir ihre öffentlichen Schlüssel. Diese Schlüssel werden unserem LDAP-System hinzugefügt und
sshd
konsultieren die öffentlichen Schlüssel, die für jeden Benutzer aufgelistet sind, um sie mithilfe des LDAP-Patches für öffentliche Schlüssel zu authentifizieren .Wenn jemand einen zusätzlichen Schlüssel hinzufügen oder einen vorhandenen Schlüssel widerrufen muss, teilt er dies einem Administrator mit, und wir kümmern uns darum. Wenn wir skalieren, werde ich schließlich ein System implementieren, mit dem Benutzer ihre eigenen öffentlichen Schlüssel drehen können.
Jeder unserer Standorte verfügt über ein Paar LDAP-Server, die mit der LDAP-Replikation mit unserem Master synchronisiert sind und die Daten an jedem Standort konsistent (und zugänglich) halten.
Alles, was ich beschrieben habe, kann mit Open-Source-Software durchgeführt werden. Es gibt auch kommerzielle Produkte, die dasselbe tun.
Sie müssen die verfügbaren Optionen genauer untersuchen und entscheiden, welche für Ihre Umgebung am besten geeignet sind. Wenn Sie weitere (spezifischere) Fragen haben, können wir wahrscheinlich hilfreicher sein.
quelle
/etc/passwd
und standardisierte/etc/group
Dateien und Dateien zu veröffentlichen (ermöglicht den normalen Betrieb der Computer und das Starten / Ausführen der zugehörigen Services, auch wenn LDAP nicht verfügbar ist)Schlüsselpaare sollten nur auf dem Computer jedes Benutzers generiert werden. Private Schlüssel werden aus einem bestimmten Grund als solche bezeichnet.
Trotzdem konnte ich einen Anwendungsfall für eine Art zentrales Repository der öffentlichen Schlüssel der Benutzer sehen. Eine Möglichkeit wäre, öffentliche Schlüssel in OpenLDAP zu speichern - neuere Versionen von OpenSSH können Schlüssel aus LDAP auslesen.
quelle
Ich weiß, dass dies eine etwas ältere Frage ist, aber Google gibt sie ziemlich hoch zurück, wenn Sie nach so etwas suchen.
Für diejenigen von uns, die eine andere Lösung als LDAP suchen, habe ich gerade das Projekt "SKM" gefunden: https://sites.google.com/site/jeromeboismartel/code-s-corner/ssh-key-management-with-skimp
quelle
Es gibt viele großartige kommerzielle und Open-Source-Lösungen wie Userify [1] (wo ich arbeite), Universal Key Manager [2], SSH Key Box [3] usw. Es hängt davon ab, was Sie brauchen und ob Sie es tun Auf der Suche nach etwas, das die Verwaltung zentralisiert und gleichzeitig den Betrieb dezentralisiert (damit Ihre Server nicht auf eine zentrale Berechtigung angewiesen sind, um sich anzumelden). In diesem Fall können Sie sich möglicherweise nicht bei einem Ihrer Server anmelden, z LDAP-Server ist ausgefallen!)
https://userify.com
https://www.ssh.com/products/universal-ssh-key-manager/
https://www.sshkeybox.com
Siehe auch diese Slant-Diskussion:
https://www.slant.co/topics/8010/~managers-for-ssh-keys
quelle