En ~/.ssh/configpuede usar la LocalCommanddirectiva para ejecutar un comando local siempre que se conecte a una máquina remota a través de SSH. Pero ¿cómo ejecutar un comando cuando salgo de una conexión SSH? Parece que los archivos * .bashrc / .bash_profile * no se obtienen cuando la conexión finaliza o se cierra.
9

Respuestas:
No se especifica en la pregunta si desea que esto se ejecute en la máquina local o remota. Tampoco se especifica qué shell está presente en ninguna de las máquinas, por lo que supongo
bashque ambas.Si desea ejecutarlo en la máquina remota, mire
~/.bash_logout, que se ejecuta cuando un shell de inicio de sesión se cierra correctamente. Deman bash:Puede hacer una prueba
~/.bash_logoutpara verificar si el shell que está cerrando sesión es una sesión SSH, algo como lo siguiente debería funcionar:Si desea ejecutarlo en la máquina local, cree un contenedor de funciones
ssh. Algo como lo siguiente debería funcionar:Eso puede ser demasiado simple para sus necesidades, pero se entiende la idea.
fuente
Estás en el camino correcto. Si la
sshsesión es un shell de inicio de sesión (en lugar de un comando remoto), sebashgenerará/etc/bash.logouty~/.bash_logoutcuando salga del shell.Si desea ejecutar un comando remoto, puede forzarlo
basha ser un shell de inicio de sesión. ElLocalCommandpodría ser similar a esto:Desde
man 1 bashfuente