30 marzo 2016

Ejecutar aplicaciones remotas en entorno grafico a través de un terminal en Linux.

Queremos conectarnos a un equipo remoto y ejecutar una aplicación en entorno gráfico a través de una conexión ssh.

Estos comandos permiten hacerlo de forma temporal, en caso de reinicio del sistema operativo o si se cambia de usuario hay que volverlos a ejecutar.

En el equipo en el que estamos, con entorno gráfico (servidor X) tenemos que autorizar la conexión al equipo remoto. Esto se hace mediante el comando "xhost" de esta manera:
  • "xhost +": No hay restricciones, todos pueden conectarse a este equipo.
  • "xhost -": Se activan las restricciones, solo los clientes autorizados pueden conectarse.
  • "xhost +ip_host_remoto": Permite el acceso desde la ip indicada. 
  • "xhost -ip_host_remoto": Elimina el permiso de acceso desde la ip indicada.
 Si ejecutamos el comando "xhost" sin ninguna opción nos muestra los permisos asignados en este momento.

Para permitir el acceso desde un equipo con la ip 192.168.4.2 teclearíamos lo siguiente:

     santi@santi-gestion:~$ xhost +192.168.4.2

  de esta manera ya tenemos concedido al host remoto para que se conecte a nuestro servidor X. Ahora nos conectamos mediante ssh desde el terminal de esta manera:

     santi@santi-gestion:~$ ssh -X usario_remoto@192.168.4.2

Obviamente el usuario con el que nos conectamos tiene que tener la cuenta creada en el equipo remoto. Una  vez accedamos, ya podemos ejecutar la aplicación gráfica (cliente X) que nos interese. Al hacerlo,  veremos como se abre la aplicación en modo gráfico en nuestro equipo.

Si cambiamos de usuario (aunque sea para ejecutar la aplicación como root) nos fallará.