it-swarm.com.de

Führen Sie Skripte nach der SSH-Verbindung automatisch auf dem Server aus

so führen Sie ein Skript automatisch auf dem Server aus, sobald das Client-System eine SSH-Verbindung zum Server hergestellt hat

beispiel: Angenommen, ein Benutzer meldet sich von einem anderen System (das über LAN verbunden ist) über eine SSH-Verbindung an meinem Computer an. Zu diesem Zeitpunkt sollte in meinem System automatisch ein Skript (Python oder Shell) ausgeführt werden, um eine Überprüfung durchzuführen.

Wie wird das Skript automatisch im Serversystem ausgeführt?

11
Enthusiast

Sie können dies tun, indem Sie den folgenden Parameter zu Ihrer Konfigurationsdatei hinzufügen (/ 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.

Eine andere Möglichkeit besteht darin, die .ssh/rc-Dateien für jeden Benutzer einzeln zu verwenden.

Um die ForceCommand-Methode zu verwenden, fügen Sie einfach ForceCommand /usr/bin/ownscript am Ende der Datei /etc/ssh/sshd_config (auf dem Server) hinzu.

Das Skript sieht folgendermaßen aus:

#!/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

Vergiss nicht, das Skript Sudo chmod +x /usr/bin/ownscript zu ändern

13
Requist

Um ein Skript während der Anmeldung auszuführen, fügen Sie es als Aufruf aus dem Skript/etc/profile heraus hinzu. Dies wird für jede Anmeldung ausgeführt, nicht nur für SSH-Anmeldungen.

0
William Peckham