Estoy tratando de encontrar una manera de ejecutar un comando específico cuando me conecto a un servidor a través de SSH. Con esto quiero decir que el comando se ejecutará incondicionalmente al abrir una conexión, por lo que preferiblemente se ejecutará al mismo tiempo que un Banner
la opción se imprimiría si está configurada. No intento ejecutar un comando después iniciando sesión.
Lo que busco, por ejemplo:
$ ssh [email protected]
(Command essentially executed at this point, before the input prints.)
[email protected]'s password:
La razón por la que intento hacer esto es que me gustaría ejecutar un script breve que envíe notificaciones automáticas a mi teléfono cada vez que se realice una conexión, independientemente de si inicio sesión o no. Había planeado usar pam_exec, pero esto solo activa auth
si se ingresa una contraseña y se presiona enter, y la account
y session_*
los módulos solo se activan en un inicio de sesión exitoso. Si se abre una conexión, pero luego se cierra, como cuando un usuario simplemente presiona Ctrl+C, entonces el script nunca se ejecutará.
¿Hay algún método para hacer esto? No encuentro mucha información sobre el tema.
Respuesta aceptada:
Puede ejecutar sshd
a través de inetd
, con inetd
corriendo:
sh -c 'your-command; exec sshd -iD'
en una conexión entrante (vea la advertencia en sshd(8)
aunque).