Aqui está um script wrapper a ser chamado pelo ForceCommand em sshd_config. Isso diferencia entre um comando de login e um comando chamado via ssh como ssh host "ls -l"
, já que você pode querer lidar com isso de maneira diferente.
#!/bin/bash
if [ -n "$SSH_ORIGINAL_COMMAND" ]; then
eval $SSH_ORIGINAL_COMMAND
else
echo "LOGIN: $USER $SSH_CONNECTION" >> /tmp/ssh.log
$SHELL
echo "LOGOUT: $USER $SSH_CONNECTION" >> /tmp/ssh.log
fi
Você pode substituir os comandos de eco com o que quiser. As informações de IP estão em $SSH_CONNECTION
, faça o que você quiser.
Se você chamar isso de /usr/local/bin/ssh-command.sh
, adicione isso ao seu sshd_config
:
ForceCommand /usr/local/bin/ssh-command.sh
É provavelmente uma boa ideia usar Match
para apenas capturar certos usuários. Supondo que todos os usuários estejam no grupo "gobias":
Match Group gobias
ForceCommand /usr/local/bin/ssh-command.sh
De qualquer forma, talvez valha a pena.