Est-il possible de savoir quelle clé SSH a été utilisée pour accéder à un compte? J'ai un compte sur un serveur auquel j'ai laissé plusieurs personnes (de confiance!) Accéder via ssh. Je trouverais utile de pouvoir savoir qui s'est connecté et quand. J'ai un accès root pour pouvoir consulter les journaux, mais rien ne semble s'y trouver. Existe-t-il un commutateur de configuration permettant d'identifier la clé dans les journaux?
ssh
logs
authentication
Espace de boucle
la source
la source
Réponses:
Si vous allez dans le fichier de configuration sshd (généralement
/etc/ssh/sshd_config
) et modifiez la directive LogLevel en VERBOSE:... vous pouvez voir quelque chose comme ceci dans les journaux:
De
man sshd_config
:la source
sed -ne "/sshd.$PPID.:.*matching DSA key/{s/^.* //g;p;q}" /var/log/auth.log
sed
!q
directive, ligne de magasin jusqu'à la fin du fichier ... ligne sed devenir:sed -ne "/sshd.$PPID.:.*matching DSA key/{s/^.* //g;h};\${x;p}" /var/log/auth.log
. Définitivement: j'adore sed!Un peu similaire à la réponse de @ user37161 . Si le compte partagé exécute un shell personnalisé et que celui-ci a besoin de savoir quel utilisateur se trouve, l'exécution du script "wrapper" risque de ne pas être suffisante, car les informations qui y sont transférées ne sont pas transmises au shell personnalisé, sauf par le biais de méthodes pouvant entraîner une course. conditions.
À la place, vous pouvez utiliser l'
environment=
option du fichier allowed_keys pour définir une variable d'environnement, que le shell personnalisé peut ensuite lire.Dans votre
.ssh/authorized_keys
fichier, ajoutez à chaque ligne un jeu de variables d’environnement, comme suit:Ensuite, le shell personnalisé, ou l’un des divers scripts rc, peut lire la
$REMOTEUSER
variable et prendre les mesures appropriées.Cependant, notez que si vous utilisez un shell standard, l'utilisateur connecté est capable de modifier le fichier pour contrecarrer diverses choses. De plus, permettre aux utilisateurs de définir des variables d'environnement telles que
LDPRELOAD
. Voir lasshd_config
documentation surPermitUserEnvironment
.la source
Mise à niveau 2016-10-31 sur le format du journal
Quelques scripts pour une installation correcte
Il existe une méthode utilisable complète pour suivre / consigner les connexions SSH par clé avec expention au nom d'utilisateur.
introduction
En plus de la réponse de @Caleb, je voudrais partager quelques petites astuces:
Note: Je travaille sur Debian 6.0 .
Installation du serveur
Niveau de journal SSHD
Tout d'abord, assurez-vous que la configuration du serveur a un niveau de journalisation suffisant:
en tant que root, cela va définir et activer loggin prolixe:
Pourrait être écrit:
ou dans un script sed :
Qui pourrait être exécuté comme:
Que pour activer ceci:
Syslog: rendre les empreintes digitales lisibles par l'utilisateur
Maintenant, prenez les empreintes digitales dans un fichier lisible par l'utilisateur:
Essayez de vous (re) connecter à partir de ssh pour vous assurer que le nouveau fichier
sshdusers.log
est créé (et contient quelque chose), puisUsage
Ceci imprimera l'empreinte digitale des sessions en cours:
Plug-in pour
.bashrc
Et enfin, il y a un petit ajout à mettre à la fin de votre
/etc/bash.bashrc
ou de l'utilisateur.bashrc
:donc, après vous être reconnecté à partir de SSH, vous verrez:
Note Lors de certaines installations, le fichier de clé autorisé peut être nommé différemment, comme
$HOME/.ssh/authorized_keys2
...la source
file
pour connaître les types de fichiers. Mais comme pour l' homme qui naviguent sur les systèmes de fichiers, ayant des extensions comme.pl
,.py
,.sh
,.awk
,.sed
,.tar.gz
, ou même.png.b64.gz
est utile!Supposons que les utilisateurs "joe" et "deb" aient accès au compte "x". Ensuite, dans le compte x,
.ssh_authorized_keys
vous ajoutez les lignes:Dans le script d'encapsidation, vous pouvez également faire ce que vous voulez, en enregistrant la clé privée utilisée
ssh
par joe à une date et une heure données avec commande$ORIGINAL_COMMAND
.la source
Sur Fedora 20+, les tentatives de connexion et les succès sont enregistrés dans /var/log/audit/audit.log. Ce journal enregistre les tentatives de connexion (échecs et réussites) et l'empreinte digitale de la clé utilisée pour la tentative de connexion est enregistrée dans le champ nommé fp.
Vous pouvez comparer l'empreinte digitale de la clé connectée avec les empreintes digitales dans les allowed_keys en l'exécutant ligne par ligne via ssh-keygen -l.
Une explication détaillée concernant les connexions SSH et leur sécurité et la détection d'intrusion est disponible à l' adresse suivante : http://vpathak.tumblr.com/post/121343814158/fedora-audit-log-with-love-from-russia
la source
Vous pouvez essayer ceci:
la source
ssh-add -L | awk 'NR==FNR { k=$2;next } /^#/{next} $2==k { print $3;exit} $3==k {print $4;exit} ' - ~/.ssh/authorized_keys
En plus de @F. Hauri répond, je prépare utile "invite LoggedIn".
Un fichier supplémentaire est optionnel ($ HOME / .ssh / users):
Cette partie doit être collée dans
/etc/profile
(pour tous les utilisateurs) ou dans~/.bashrc
Résultat
la source