Bash peut-il me dire quelle clé publique SSH a été utilisée pour l'authentification?


14

Disons que je veux suivre mes rootutilisateurs. Chacun d'eux a une clé privée unique et leurs clés publiques ont été stockées dans /root/.ssh/authorized_keys.

Étant donné que chaque utilisateur se connecte avec sa clé unique, comment savoir depuis une session BASH quelle clé a été utilisée pour s'authentifier? J'ai essayé de regarder les variables d'environnement lorsque je me connecte, mais je ne vois rien qui corrèle ma session avec ma clé publique.


Légèrement lié: définir LogLevel VERBOSE dans votre (openssh) sshd_config enregistrera l'empreinte digitale de la clé utilisée pour vous connecter.
— andol

Réponses:


21

Vous pouvez ajouter le nom d'utilisateur à la clé publique ~/.ssh/authorized_keyssur le serveur et l'exporter en tant que valeur d'environnement:

environment="REALUSER=realusername" ssh-dsa AAA...

Cela définira la variable d'environnement REALUSER qui sera ensuite disponible pour être utilisée dans bash. Cela ne fonctionnera que si PermitUserEnvironmentest défini sur true danssshd_config


Whoah .. vraiment? Cool! Tu veux dire ~/.ssh/authorized_keys? Je n'avais nullement connaissance de cela.
— PP.

5
Oui, c'est ça. Vous pouvez faire beaucoup de choses intéressantes là-bas - man sshvous en dira plus sous la rubrique AUTHORIZED_KEYS FILE FORMAT.
— Jenny D

4
Cela peut dépendre de la version, mais j'ai dû utiliser man sshdpour trouver la AUTHORIZED_KEYS FILE FORMATsection.
— Matthew Crumley

2
N'oubliez pas que l'activation de PermitUserEnvironment a des implications en termes de sécurité. Lire man sshd
— Florin Andrei
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.