web-dev-qa-db-fra.com

Exécuter les scripts automatiquement sur le serveur après la connexion ssh

comment exécuter automatiquement un script sur le serveur peu de temps après que le système client établisse une connexion SSH avec le serveur

par exemple, supposons qu'un utilisateur se connecte à mon ordinateur à partir d'un autre système (connecté via LAN) à l'aide de la connexion SSH. À ce moment, un script (python ou shell) doit être exécuté automatiquement sur mon système pour effectuer une validation?

Comment exécuter le script automatiquement sur le système serveur?

11
Enthusiast

Vous pouvez le faire en ajoutant le paramètre suivant à votre fichier de configuration (/ etc/ssh/sshd_config).

 ForceCommand
         Forces the execution of the command specified by ForceCommand, ignoring any command supplied by the client and ~/.ssh/rc if present.  The command is invoked by using the user's login Shell
         with the -c option.  This applies to Shell, command, or subsystem execution.  It is most useful inside a Match block.  The command originally supplied by the client is available in the
         SSH_ORIGINAL_COMMAND environment variable.  Specifying a command of “internal-sftp” will force the use of an in-process sftp server that requires no support files when used with
         ChrootDirectory.

Une autre option consiste à utiliser les fichiers .ssh/rc par utilisateur.

Pour utiliser la méthode ForceCommand, ajoutez simplement ForceCommand /usr/bin/ownscript au bas du fichier /etc/ssh/sshd_config (sur le serveur).

Le script ressemble à ceci:

#!/bin/bash
#Script file for ssh
#
#put your commands here
echo "test" > /tmp/test.txt
#
#exit by calling a Shell to open for the ssh session
/bin/bash

N'oubliez pas de chmod le script Sudo chmod +x /usr/bin/ownscript

13
Requist

Pour l'exécution d'un script lors de la connexion, ajoutez-le en tant qu'appel depuis le script/etc/profile. Ceci est exécuté pour chaque connexion, pas seulement pour les connexions ssh.

0
William Peckham