Sie können Ihren SSH-Benutzern anstelle des von ihnen angeforderten Befehls (oder ihrer Shell, wenn sie keinen bestimmten Befehl geben) einen Befehl aufzwingen. Dies kann durch Angeben dieses Befehls mit etwas wie ForceCommand /root/ssh-wrapper
in erreicht werden /etc/ssh/sshd_config
(es spielt keine Rolle, wo sich das Skript befindet oder wie es benannt ist, stellen Sie nur sicher, dass es von allen Benutzern ausführbar ist und die sshd-Konfigurationsdatei darauf verweist). Sie müssen auch neu starten / neu laden sshd
. Der ursprüngliche Befehl ist für den erzwungenen Befehl als zugänglich $SSH_ORIGINAL_COMMAND
.
Ich habe dieses Skript gerade zusammen gehackt:
#! /bin/sh
# add logger options when needed
log="logger -t ssh-wrapper"
# find IP address
ip=`echo $SSH_CONNECTION | cut -d " " -f 1`
$log $USER login from $ip
espeak "$USER just logged in from $ip" > /dev/null 2>&1
$log command: ${SSH_ORIGINAL_COMMAND:-shell}
${SSH_ORIGINAL_COMMAND:-shell}
$log $USER logout
espeak "$USER just logged out" > /dev/null 2>&1
Jedes Mal, wenn ich mich anmelde oder abmelde, wird mir eine Stimme darüber informiert, und ein Protokolleintrag wird in syslog geschrieben. Es protokolliert auch den Befehl. Sie können Folgendes verwenden, um Ihre SSHD-Nutzung zu "verfolgen":
tailf /var/log/syslog | grep ssh-wrapper
Bitte beachten Sie, dass dieses Skript größtenteils ungetestet ist, verwenden Sie es also auf eigenes Risiko! ;-)
PS: Denken Sie daran, dass dieses Skript als der Benutzer ausgeführt wird, der sich angemeldet hat. Sie können also nicht alles tun, was Sie möchten, wenn Sie es ändern, um weitere Funktionen hinzuzufügen ...