Esta es una expansión de mi pregunta anterior . Necesito ejecutar un comando almacenado localmente (es decir mount /home) en una máquina remota al iniciar sesión ssh. Por el momento, estoy usando:
ssh -t mymachine.example.com 'mount /home ; /bin/bash'
lo que funciona bien, pero me preguntaba si podría poner este comando en mi .ssh/configpara no tener que escribirlo todo el tiempo. Encontré una LocalCommandopción, pero no veo ninguna RemoteCommandopción.
Es importante que command-to-be-executedse almacene en la máquina local, ya que contendrá una contraseña para abrir un disco encriptado. Esa es la razón por la que no puedo poner el comando en .profilela máquina remota.

~/.ssh/rcse almacena nuevamente en la máquina remota. En cuanto a su comentario sobrepsmostrar mis parámetros de línea de comandos (incluida la contraseña), eso no me molesta. Es la máquina remota en la que no confío. Mi máquina local solo la uso yo mismo, por lo que nadie más tiene accesops.pssalida es de la máquina remota. El punto es: todo lo que suministresshcomo comando remoto se mostrará en el servidor remoto enps.Esto se agregó en OpenSSH 7.6:
ref: https://www.openssh.com/txt/release-7.6
fuente
fuente
Puede hacerlo con la cooperación de la máquina remota de la siguiente manera.
En su máquina local, inserte el comando para ejecutar en la variable de entorno
LC_SSH_INITIAL_COMMAND. SSH generalmente está configurado para pasar todas las variables de entorno del formularioLC_*, porque normalmente son configuraciones regionales.En la máquina remota, ejecute a
eval "$LC_SSH_INITIAL_COMMAND"través de la configuración por tecla en~/.ssh/authorized_keyso desde~/.ssh/rc(tenga en cuenta que si tiene un~/.ssh/rcarchivo, debe ocuparse de ejecutarloxauthmanualmente para el reenvío X11).Con el
authorized_keysmétodo, puede ejecutar un comando de manera similar cuando se cierra la sesión SSH (a menos que el proceso de shell se interrumpa abruptamente; al menos debe atrapar la señal HUP para que su comando se ejecute incluso si la conexión se corta).Sin embargo, este no es un buen arreglo para hacer algo global como montar un sistema de archivos. Deberá tener cuidado de no volver a montar si el sistema de archivos ya está montado (por ejemplo, debido a un comando SSH que se ejecuta simultáneamente), y no desmontar al cerrar sesión. Mi recomendación para este caso de uso es todavía hacer el montaje comandos remotos de forma explícita, a continuación, ejecutar sin hacer nada especial, y desmontar cuando ya no desea que el acceso de sistema de archivos.
fuente
No lo he intentado, pero un enfoque podría ser
Subsystemen el control remotosshd_configque ejecute el comando que desea leyendo algunos envSendEnven el local.ssh/configpara pasar tales claves al servidor remotofuente