Nous cherchons à passer à la gestion par clé des connexions SSH et nous nous demandons s'il existe des systèmes de gestion des clés qui nous permettraient de gérer de manière centralisée les clés d'accès dans le monde entier.
Le système devrait idéalement permettre de délivrer des clés par client et de les révoquer si nécessaire, en mettant à jour les clés de la machine serveur à la volée.
Quelqu'un connaît-il un tel système, qu'il soit commercial ou open source?
REMARQUE: pour clarifier, nous avons besoin de la gestion des clés pour une assez grande quantité de serveurs cloud (de type EC2) et une petite quantité d'utilisateurs de services. Je suppose que le patch LDAP + suggère ci-dessous pourrait être la voie à suivre.
Réponses:
Il existe de nombreuses façons de procéder. Le stockage de clés LDAP a été mentionné plusieurs fois, et je l'ai fait et cela fonctionne, pour autant qu'il le fasse. LDAP a ses propres curiosités de gestion, cependant, qui nécessitent un certain apprentissage.
Je suis un grand fan de serveurs simples et robustes qui ont des dépendances réseau externes minimales pour des choses simples comme l'authentification des administrateurs, donc je penche vers une stratégie de distribution de clés SSH beaucoup plus robuste - j'ai le système de gestion de configuration qui s'en occupe. La clé publique de chacun est conservée dans le système de gestion de la configuration, et partout où la personne doit pouvoir se connecter, sa clé est ajoutée. Le système de configuration sait également supprimer les clés qui ne sont pas spécifiées, donc quand quelqu'un quitte ou que sa clé change, il suffit de supprimer la configuration de clé et lors de la prochaine exécution du système de configuration, la clé est supprimée.
la source
Les paires de clés doivent être générées par l'utilisateur.
L'utilisateur conserve la moitié privée - vous ne devriez jamais la voir. Si vous avez la clé privée de quelqu'un sous une forme où vous pouvez la lire / l'utiliser, vous faîtes mal la sécurité.
La moitié publique vous est donnée (par le mécanisme que vous souhaitez: formulaire Web, e-mail, donnez-le-moi sur un CD), à centraliser comme vous le souhaitez. Certains endroits stockent les clés publiques dans LDAP. D'autres poussent des
authorized_keys
fichiers à l'aide de leur système de déploiement.Dans mon environnement, les utilisateurs qui ont besoin d'un accès shell me donnent leurs clés publiques. Ces clés sont ajoutées à notre système LDAP et
sshd
consultent la ou les clés publiques répertoriées pour chaque utilisateur pour les authentifier, via le correctif de clé publique LDAP .Lorsque quelqu'un a besoin d'ajouter une clé supplémentaire ou de révoquer une clé existante, il en informe un administrateur et nous nous en occupons. Finalement, à mesure que nous évoluerons, j'implémenterai un système qui permet aux gens de faire pivoter leurs propres clés publiques.
Chacun de nos sites possède une paire de serveurs LDAP, synchronisés avec notre maître avec la réplication LDAP, qui maintient les données cohérentes (et accessibles) à chaque emplacement.
Tout ce que j'ai décrit peut être fait avec un logiciel open source. Il existe également des produits commerciaux qui font la même chose.
Vous devez rechercher les options disponibles de manière plus approfondie et décider laquelle convient le mieux à votre environnement. Si vous avez d'autres questions (plus spécifiques), nous pouvons probablement être plus utiles.
la source
/etc/passwd
et des/etc/group
fichiers (permet aux machines de fonctionner normalement et les services associés pour démarrer / exécuter même si LDAP est non disponible)Les paires de clés ne doivent pas être générées ailleurs que sur l'ordinateur de chaque utilisateur. Les clés privées sont nommées comme telles pour une raison.
Cela dit, je pouvais voir un cas d'utilisation pour une sorte de référentiel centralisé des clés publiques des utilisateurs. Une option serait de stocker les clés publiques dans OpenLDAP - les versions récentes d'OpenSSH peuvent lire les clés dans LDAP.
la source
Je sais que c'est une question un peu plus ancienne, mais Google la renvoie assez haut lors de la recherche de ce genre de chose.
Pour ceux d'entre nous qui recherchent une solution en dehors de LDAP, je viens de trouver le projet "SKM": https://sites.google.com/site/jeromeboismartel/code-s-corner/ssh-key-management-with-skimp
la source
Il existe de nombreuses excellentes solutions commerciales et open source, telles que Userify [1] (où je travaille), Universal Key Manager [2], SSH Key Box [3], etc. Cela dépend de vos besoins et si vous êtes chercher quelque chose qui centralise la gestion tout en décentralisant les opérations (afin que vos serveurs ne dépendent pas d'une autorité centrale pour se connecter ... dans ce cas, vous ne pourrez peut-être pas vous connecter à aucun de vos serveurs, si, par exemple, votre Le serveur LDAP est en panne!)
https://userify.com
https://www.ssh.com/products/universal-ssh-key-manager/
https://www.sshkeybox.com
Voir aussi cette discussion Slant:
https://www.slant.co/topics/8010/~managers-for-ssh-keys
la source