J'essaie de trouver un moyen d'exécuter une commande spécifique lors de la connexion à un serveur via SSH. J'entends par là que la commande s'exécutera inconditionnellement à l'ouverture d'une connexion, donc celle-ci sera de préférence exécutée en même temps qu'une Banner
l'option serait imprimée si elle était définie. Je n'essaie pas d'exécuter une commande après connexion.
Ce que je recherche, par exemple :
$ ssh [email protected]
(Command essentially executed at this point, before the input prints.)
[email protected]'s password:
La raison pour laquelle j'essaie de le faire est que je voudrais exécuter un court script qui envoie des notifications push à mon téléphone chaque fois qu'une connexion est établie, que je me connecte ou non. J'avais prévu d'utiliser pam_exec, mais cela ne déclenche que auth
si un mot de passe est entré et que la touche entrée est enfoncée, et que le account
et session_*
les modules ne se déclenchent qu'en cas de connexion réussie. Si une connexion est ouverte, puis fermée, comme lorsqu'un utilisateur appuie simplement sur Ctrl+C, le script ne sera jamais exécuté.
Existe-t-il une méthode pour le faire? Je ne trouve pas beaucoup d'informations sur le sujet.
Réponse acceptée :
Vous pouvez exécuter sshd
via inetd
, avec inetd
en cours d'exécution :
sh -c 'your-command; exec sshd -iD'
lors d'une connexion entrante (voir la mise en garde dans sshd(8)
cependant).