Você pode forçar um comando para seus usuários de SSH em vez do que eles solicitam (ou seu shell se eles não derem um comando específico). Isso pode ser feito especificando esse comando com algo como ForceCommand /root/ssh-wrapper
in /etc/ssh/sshd_config
(não importa onde o script está localizado ou como é chamado, apenas certifique-se de que ele é executável por todos os usuários e o arquivo de configuração sshd aponta para isto). Você também precisa reiniciar / recarregar sshd
. O comando original está acessível para o comando forçado como $SSH_ORIGINAL_COMMAND
.
Eu acabei de hackear este script:
#! /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
Agora, toda vez que eu faço login ou faço logout, uma voz fala sobre isso e uma entrada de log é gravada no syslog. Também registra o comando. Você pode usar algo como o seguinte para "seguir" o uso do sshd:
tailf /var/log/syslog | grep ssh-wrapper
Por favor, note que este script é principalmente não testado, então use a seu próprio risco! ; -)
PS: lembre-se que este script é executado como o usuário que efetuou login, então você não pode fazer tudo o que quiser se você o alterar para adicionar mais recursos ...