Es posible que cuando queremos que alguien entre en nuestro servidor por ssh deseemos que éste nos envíe un mensaje de advertencia por ejemplo para enviar un listado de los últimos errores por email o un bot de telegram. O para saber si hemos perdido nuestra contraseña de administrador.
Creación del script
Un simple script para tal cosa se realizaría de la siguiente forma.
para empezar tendremos que editar el fichero
sudo vi /etc/ssh/sshd_config
y añadir las siguientes líneas
ForceCommand /usr/bin/myLoginScript
Después tendremos que crear el fichero
sudo vi /usr/bin/myLoginScript
Y pegar lo siguiente:
#!/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
Le damos permisos de ejecución
sudo chmod+x /usr/bin/myLoginScript
Por último no olvidarnos de probar que funciona antes de reiniciar el servicio
sudo sshd -t
Si no muestra ningún error podemos reiniciar el servicio:
sudo service sshd restart sudo service sshd status
Modificación del script
Podríamos enviar un mensaje a nuestro bot de telegram de la siguiente forma
#!/bin/bash function mensajeDeEstado { echo "Login en el host" hostname echo "Sesiones activas" who echo "Tiempo activo" uptime } CHATID="[tu id de chat]" KEY="[la id de tu bot]" TIME="10" URL="https://api.telegram.org/bot$KEY/sendMessage" TEXT=$(mensajeDeEstado) curl -s --max-time $TIME -d "chat_id=$CHATID&disable_web_page_preview=1&text=$TEXT" $URL >/dev/null #exit by calling a shell to open for the ssh session /bin/bash
Actualización
Si no existe creamos el fichero sshrc
sudo vi /etc/ssh/sshrc
Lo bueno de utilizar este método es que si que tenemos todas las variables de entorno y podemos ejecutar la opción que queramos.
ip=`echo $SSH_CONNECTION | cut -d " " -f 1` logger -t ssh-wrapper $USER login from $ip echo "User $USER just logged in from $ip" | sendemail -q -u "SSH Login" -f "Originator <from@address.com>" -t "Your Name <your.email@domain.com>" -s smtp.server.com &
Fuente: https://askubuntu.com/questions/179889/how-do-i-set-up-an-email-alert-when-a-ssh-login-is-successful
Fuente:
https://askubuntu.com/questions/397674/run-scripts-automatically-in-server-after-ssh-connection