Normalmente, en sistemas GNU/Linux, solemos usar la terminal para todo tipo de tareas en equipos locales como remotos pero hay ocasiones en las que necesitamos acceso a programas con interfaz gráfico y es aqui cuando tenemos que instalar algun tipo de servicio tipo VNC o privados como TeamViewer.
Para la gente que no quiere instalar un servicio y que este a la escucha en un puerto de la máquina para siempre, con los riesgos que ello puede conllevar, se puede usar una utilidad llamada xpra que sirve para mostrar aplicaciones gráficas o escritorios en máquinas remotas sin tener un servicio ejecutandose.
Esta disponible para varios sistemas operativos e incluso se puede ver desde un navegador ya que instalando websockify podemos ejecutar el servidor con soporte HTML5. La comunicación entre el cliente y el servidor puede ser por SSH, TCP o SSL. Se pueden conectar varios clientes al mismo servidor.
En sistemas Debian su instalación es muy sencilla y el mismo programa hace de cliente y servidor. Un simple apt install xpra nos sirve para instalarlo tanto en el cliente como en el servidor.
En la web de Arch vienen varios ejemplos de uso. Os adelantamos algunos de ellos, todos ejecutados desde el cliente.
Iniciar una terminal de un equipo remoto (192.168.1.1) mediante SSH usando el display 7:
xpra start ssh:user@192.168.1.1:7 --start=xterm
Con CTRL-C (o usando el comando xpra detach ssh:user@192.168.1.1:7) podemos parar el programa en el lado del cliente pero en el servidor seguirá ejecutandose y podemos volvernos a enganchar con:
xpra attach ssh:user@192.168.1.1:7
Para parar el servicio remoto usamos:
xpra stop ssh:user@192.168.1.1:7
Si queremos tener un clonado del escritorio completo podemos usar:
xpra shadow ssh:user@192.168.1.1:7
pero no es muy eficiente en determinados sistemas y puede que nos consuma bastante tiempo de cpu.
Nota: Si os da el fallo «Error: Only console users are allowed to run the X server«, hay que editar el fichero /etc/X11/Xwrapper.config en el servidor y modificar la linea allowed_users=console con allowed_users=anybody
o no instalar nada y usar ssh -X
ssh -X va bien para conexiones rapidas, pruebalo con una conexion lenta y veras como instalas xpra