Escritorio Remoto

De Master Solutions Wiki
Saltar a: navegación, buscar

Introduccion

El escritorio remito permite ejecutar programas graficos (X) en otra máquina viéndolos en local

A veces se necesita ejecutar un programa con interfaz gráfica que reside en una máquina distinta y queremos verlo en la máquina que estamos. Esta receta explica cómo conseguirlo sin tener que abrir una sesión X ni tener que utilizar un "escritorio remoto" como vnc.

Método 1: Exportar display

El método 'clásico' cuando queremos ejecutar un programa en una máquina remota y ver su interfaz en nuestro cliente X local es:

 user@local:~$ xhost remoto
 remoto being added to access control list
 user@local:~$

Con eso se consigue que el servidor X, que corre en nuestra máquina, acepte conexiones externas de la máquina "remoto". Pero si queremos que admita conexiones de cualquier máquina hay que poner:

 user@local:~$ xhost +
 access control disabled, clients can connect from any host
 user@local:~$

Aunque esto puede suponer un problema de seguridad grave.

Ahora accede a la máquina remota con telnet o algo similar y exporta el 'display' para aplicaciones X.

 user@remoto:~$ export DISPLAY=local:0
 user@remoto:~$

La instrucción export declara una variable de entorno de la shell (no tiene nada que ver con la expresión exportar display).

Con esto, la aplicación X sabrá que debe utilizar el servidor X de la máquina llamada 'local' en lugar de usar el de la máquina en la que se ejecuta. Puedes comprobar que funciona con algo como:

 user@remoto:~$ xeyes
 user@remoto:~$

Con lo que deberías ver el clásico programilla de los ojos en la máquina local.

Método 2: ssh

El servidor ssh es capaz de gestionar automáticamente la conexión X siempre que servidor y cliente estén configurados adecuadamente.

Edita el fichero /etc/ssh/sshd_config del servidor y haz la siguiente modificación, que sirve para que el servidor ssh remoto devuelva el tráfico X11.

 X11Forwarding = yes

Edita el fichero /etc/ssh/ssh_config del cliente y haz la siguiente modificación, Esto hace que el cliente ssh local solicite el tráfico X11.

 ForwardX11 = yes

Como alternativa a esto, el usuario puede solicitarlo por línea de comando al hacer la conexión:

 ssh -X remoto

Si lo haces en las dos máquinas, podrás utilizar este mecanismo en ambos sentidos. Sólo queda reiniciar el servidor con:

 root@remoto:~# /etc/init.d/ssh restart
 root@remoto:~#

Y ya tienes el efecto deseado, compruébalo con xeyes... (por ejemplo)

Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Herramientas
Procedimientos
Procesos
Indicadores
Items de Configuración
Imprimir/exportar