Ejecutar un script cuando se entra por ssh en un servidor

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.