¿Usar script bash para enviar comandos al cliente SSH?

¿Usar script bash para enviar comandos al cliente SSH?

Buenas tardes a todos,

Recientemente me di cuenta de mi capacidad para enviar comandos a mi estación de trabajo local desde una conexión SSH remota usando la <enter>~Csecuencia de escape, como:

[root@host ~]# 
[root@host ~]# 
ssh> !ip ad

Ahora, me encantaría poder hacer esto usando un script bash para ejecutar comandos automáticamente en mi estación de trabajo local o hacer otras cosas, pero no he podido encontrar ninguna forma de enviar comandos a este Shell mediante programación, ni encontré a nadie. más quién preguntó/intentó. Para ser claros, no estoy intentando enviar comandos A un servidor remoto a través de SSH; estoy intentando enviar comandos DE REGRESO a mi estación de trabajo DESDE una conexión SSH a través del cliente (como se muestra en la imagen de arriba).

Si alguien tiene alguna sugerencia o sabe cómo hacer esto, estaría muy agradecido por su ayuda. ¡Gracias!

Respuesta1

Creo que esto no es posible porque el carácter de escape nunca llega a Bash en el sistema remoto. Es interceptado por su cliente SSH local antes de que el bash remoto pueda configurarlo.

Sé que no es lo que estabas pidiendo y puede que no sea factible según tu situación, pero una solución alternativa podría lograr tu objetivo:

Ejecute el comando en su máquina local volviendo a acceder mediante SSH desde la máquina remota:

[root@remote-host ~]# ssh your-local-machine ip ad

Respuesta2

Como se trata de un problema de seguridad, no podrá ejecutar comandos locales desde un host distante dentro de una conexión SSH.

La forma de escapar de su conexión para pasar comandos es a través de la terminal, es decir. desde el servidor local.

Por lo tanto, si desea ejecutar tanto una conexión como un script a través de una conexión SSH, puede intentar echar un vistazo a expect, pero será incrustando o envolviendo su conexión SSH en otra aplicación, no directamente desde el shell remoto.

información relacionada