Me gustaría poder ejecutar automáticamente un comando en un host remoto cada vez que inicie sesión en ese host, pero dentro de la sesión SSH interactiva actual.
Algo como
ssh user@remotehost [run do.sh]
donde do.sh
realiza un par de tareas de limpieza y luego se vuelve a conectar a una screen
sesión (actualmente lo ejecuto do.sh
manualmente después de iniciar sesión en el host).
No quiero agregarlo .bashrc
porque inicio sesión en este host desde otras máquinas y no quiero do.sh
ejecutarlo cuando inicio sesión desde allí, así que necesito que sea opcional.
bash
shell
command-line
ssh
Jim Farkas
fuente
fuente
ssh user@remotehost /path/to/do.sh
? Si funciona, incluso puedes usar un alias en .ssh / config o en tu .bashrc personalRespuestas:
Podrías probar algo como esto:
como se sugiere aquí: /server/167416/change-directory-automatically-on-ssh-login
O puede intentar usar la opción 'LocalCommand' en sshd_conf (o ~ / .ssh / config) como se describe en la página de manual oficial: http://unixhelp.ed.ac.uk/CGI/man-cgi?ssh+1
fuente
Una parte del rompecabezas: suponiendo que OpenSSH, el
ssh
cliente establecerá la siguiente variable de entorno:Por lo tanto, puede utilizar esta información para averiguar de dónde proviene su conexión .
fuente