Comment gérez-vous les clés SSH?

15

J'ai un serveur avec plusieurs utilisateurs qui ont chacun plusieurs clés SSH autorisées. Existe-t-il un moyen efficace (utilitaire de ligne de commande?) De garder une trace de quelle clé appartient à qui et de supprimer / ajouter rapidement des clés (à l'exception de ssh-copy-id)?

Olivier Lalonde
la source
1
les scripts shell peuvent facilement suivre les temps de connexion à partir des journaux et manipuler les fichiers en .ssh ... Je sais que ce n'est pas ce que vous recherchez, c'est donc un commentaire et non une réponse
RobotHumans
1
Utilisez la dernière partie de chaque ligne .ssh/authorized_keyspour les commentaires (à partir de man sshd: "Les clés publiques du protocole 1 sont composées des champs séparés par des espaces suivants: options, bits, exposant, module, commentaire. La clé publique du protocole 2 se compose de: options, type de clé, clé codée en base64, commentaire. "). Et pour répondre à la question, j'utilise vimmais n'importe quel éditeur devrait le faire.
shellholic
Bien sûr, si chaque utilisateur possède un compte utilisateur distinct, il n'y a pas de problème, tant que toutes les entrées se trouvent dans le dossier de départ de chacun (ou en fait dans .ssh / authorized_keys, mais de toute façon).
Olli
@shellholic, vous avez une bonne réponse. Postez-le pour qu'il puisse être marqué comme tel :)
djeikyb
@djeikyb ok, c'est fait, mais je devrais terminer un peu
shellholic

Réponses:

3

Vous pouvez utiliser la dernière partie de chaque ligne dans .ssh/authorized_keysest destinée aux commentaires. De man sshd:

Les clés publiques du protocole 1 se composent des champs séparés par des espaces suivants: options, bits, exposant, module, commentaire. La clé publique du protocole 2 se compose de: options, type de clé, clé codée en base64, commentaire.

Et pour répondre à la question, j'utilise vimmais n'importe quel éditeur devrait le faire.

Mes commentaires contiennent généralement:

  • date de création
  • emplacement physique: création ordinateur / clé USB (je préfère ne pas déplacer de clé privée mais les générer / révoquer et savoir où ils se trouvent)
  • 1-2 mots sur le but (pour quelle connexion, pour quel client, pour quel script)
shellholic
la source
3

Je vérifierais le projet Monkeysphere . Il utilise les concepts Web of Trust d'OpenPGP pour gérer les fichiers author_keys et known_hosts de ssh, sans nécessiter de modification du client ou du serveur ssh.

Da1T
la source