Ejecutando Aplicaciones Remotas con SSH 💻

El protocolo SSH no solo sirve para conectarse a un servidor remoto, también es una herramienta poderosa para ejecutar comandos y aplicaciones que residen en la máquina remota, ¡pero interactuando con ellas desde tu máquina local! Te mostramos cómo de forma sencilla.


Usaremos el cliente y servidor de OpenSSH.


Ejecutando Comandos de Terminal Interactivos Remotamente

¿Necesitas ejecutar una aplicación de terminal interactiva en el servidor, como un explorador de archivos ncurses (GNU Midnight Commander) o un editor (GNU nano), y controlarla desde tu terminal local? Usa el flag -t:
$ ssh user@ip -t <comando>


Ejemplo: Para ejecutar Midnight Commander (mc) en el servidor:

$ ssh user@ip -t mc



El flag -t fuerza la asignación de un pseudo-terminal, lo cual es necesario para que muchas aplicaciones interactivas de terminal funcionen correctamente a través de SSH.

Hay casos de cierta aplicaciones, que puedan que necesiten argumentos extras, por ejemplo.

$ ssh -t user@ip "nano ~/error.log"

 

La shell remota, al recibir una única cadena entrecomillada para ejecutar, la interpreta como una línea de comando. La shell remota elimina las comillas y luego analiza la línea nano ~/error.log, identificando nano como el comando y ~/error.log como el argumento. De nuevo, la expansión de ~ ocurre en la shell remota.


El entrecomillado es una recomendación en estos casos.

 


Ejecutando Aplicaciones Gráficas Remotamente (X11 Forwarding)

¿Sabías que puedes ejecutar aplicaciones con interfaz gráfica que están instaladas en el servidor y ver su ventana en tu escritorio local? Esto es posible gracias al X11 Forwarding.

Para lograrlo, necesitas dos cosas:

  1. Tener un servidor X en tu máquina local (la mayoría de los entornos de escritorio en Linux y macOS lo tienen por defecto; en Windows, necesitas instalar uno como VcXsrv o MobaXterm).
  2. Habilitar X11Forwarding en la configuración del servidor SSH (en el archivo sshd_config, usualmente en /etc/ssh/sshd_config, debe estar la línea X11Forwarding yes. Puede que necesites reiniciar el servicio SSH en el servidor después de cambiarlo).

 

 

Ambas PC que desempeñan como cliente y servidor, en este ejemplo usan el protocolo Wayland.



Una vez cumplidos los requisitos, usa el flag -X al conectarte:

$ ssh user@ip -X <aplicación_gráfica>

 

Ejemplo: Para ejecutar la wallet electrum, que está instalado en el servidor y usarlo en tu máquina local:

$ ssh user@ip -X "electrum --testnet"



SSH se encargará de reenviar la interfaz gráfica de la aplicación remota a tu pantalla local de forma segura.


Sobre otras anécdotas sobre SSH, en el blog las pueden consultar aquí.



Comentarios

Entradas más populares de este blog

Super Mario RPG 🎮