7 votes

Comment savoir quelle clé a été utilisée pour l'authentification par clé publique ?

Plusieurs développeurs utilisent un compte partagé sur un serveur de test, en utilisant l'authentification par clé publique. Existe-t-il un moyen de savoir quelle clé a été utilisée pour l'authentification (par exemple, le commentaire des clés) ?

5voto

David Fraser Points 406

Voulez-vous le découvrir après quelque chose qui s'est déjà produit (médecine légale) ou voulez-vous faire en sorte que vous puissiez enregistrer qui fait quoi ?

Pour la médecine légale : Sur mon système Fedora, /var/log/secure contient des enregistrements de chaque authentification par clé publique et de chaque nom d'utilisateur, mais ne dit pas quelle clé a été utilisée. Vous n'avez probablement pas de chance ici

Pour l'auditabilité future : Vous pouvez utiliser l'option authorized_keys pour définir les commandes auxquelles chaque connexion est limitée, puis exécuter un programme qui enregistre l'authentification (et éventuellement les commandes suivantes, en utilisant quelque chose comme sudoscript ):

Si la phrase d'options au début d'une ligne contient le mot clé command="string", toute connexion ssh qui s'authentifie à l'aide de cette clé particulière n'exécutera que la commande spécifiée, même si la ligne de commande qui lui a été donnée spécifiait une autre commande.

Il faut dire qu'il est probablement plus judicieux de créer plusieurs comptes, puis de mettre en place une zone d'accès partagée...

0 votes

Merci pour votre réponse. Heureusement, j'en ai besoin pour l'avenir. Cette commande s'exécutera-t-elle à la place du login Shell ? Comment puis-je savoir quel login Shell est configuré pour l'utilisateur et le lancer après avoir fait les choses spécifiques à la clé ?

0 votes

Un peu de trivialité getent y cut résoudra ce problème pour vous.

0 votes

Oui, il s'exécutera à la place du login Shell - et la réponse de womble devrait vous aider : getent passwd $USER | cut -d: -f 7

5voto

Jeff Hillman Points 3333

...en utilisant un compte partagé...

Merci de nous avoir donné un exemple parfait à citer pour expliquer pourquoi c'est une mauvaise idée ;-)

Sérieusement, ce que vous voulez ne peut pas être fait. Et si par "commentaire des clés" vous voulez dire le commentaire qui se trouve dans le fichier id_rsa après la clé, c'est également impossible. C'est un commentaire, il n'est pas envoyé au serveur de l'autre côté.

Vraiment. Créez plusieurs comptes.

0 votes

Il n'est pas acceptable de passer à plusieurs comptes. Veuillez consulter le commentaire lié pour une configuration sécurisée de compte partagé : serverfault.com/questions/14012/

0 votes

Ce commentaire explique comment faire des choses sécurisées supplémentaires avec AuthorizedKeys, pas avec un compte partagé.

4voto

Ryan Sampson Points 2898

Si vous configurez sshd pour qu'il enregistre à un niveau suffisamment verbeux, l'empreinte de la clé utilisée pour se connecter est imprimée. Cela remplit vos journaux très rapidement, cependant.

1voto

inazaruk Points 37760

Pour des raisons d'auditabilité et si vos employés utilisent ssh-agent, vous pouvez mettre ceci dans votre .bashrc :

SSH_KEY_NAME=$(ssh-add -L | cut -d' ' -f 3 || 'unknown')
if [[ ! $SSH_KEY_NAME ]]; then SSH_KEY_NAME="no agent"; fi
echo `/bin/date` $SSH_KEY_NAME >> ~/.login.log

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X