Cómo iniciar un software GUI en una PC Linux remota a través de SSH

109

A veces necesito iniciar el reproductor multimedia XMBC u otro software GUI en una de mis PC (pequeña PC Xubuntu utilizada como centro multimedia).

Por lo general, hago esto iniciando un servidor X11vnc en la PC remota a través de SSH y luego conectándome con un cliente Xvnc al escritorio Xfce.

¿Hay alguna manera de iniciar un software GUI en una PC Linux remota a través de SSH?

¡Gracias!

Raben
fuente
Puede confirmar que el enfoque en la respuesta elegida funciona si el cliente remoto también es una Mac. Trabajando con éxito con macOS Sierra.
Benjamin R

Respuestas:

136

Si. Solo necesita ejecutar export DISPLAY=:0(o lo que sea que la pantalla remota esté numerada como) en su sesión ssh y la ejecución de programas se ejecutará en la pantalla remota. Un ejemplo rápido:

oli@bert:~$ ssh tim
oli@tim:~$ export DISPLAY=:0
oli@tim:~$ firefox

Firefox ahora se está ejecutando en timla pantalla.

Sin embargo, cuando cierra su sesión ssh, la mayoría de las veces la aplicación remota se cerrará. Si desea desconectarse de ssh pero deja la aplicación en ejecución, debe iniciarla de manera especial usando algo como la pantalla (mantiene la sesión de ssh ejecutándose en segundo plano) nohupu otro método. Para obtener más información sobre esto, recientemente hubo otra pregunta al respecto .

Puede acortar todo esto en un solo comando que se conectará, exportará la pantalla en línea e iniciará la aplicación de manera que no se cierre después de que la sesión ssh muera:

ssh tim "DISPLAY=:0 nohup firefox"
Oli
fuente
Decía No DISPLAY: this may not be what you want.cuando lo probé (por cierto, lo probé de abiword. "
PyRulez
1
@PyRulez Tenga en cuenta que "o lo que sea que la pantalla remota esté numerada como" en la primera línea. Si no es el primer servidor gráfico, podría ser: 1 o superior. Corre wpara ver quién inició sesión y dónde. Eso también le dirá el número de PANTALLA.
Oli
1
¿Cómo lo
apago
1
unset DISPLAY
Oli
77
a veces quieres hacer lo contrario y ejecutar la aplicación X localmente solo conéctate usando -Y y luego ejecuta tu aplicaciónssh -Y <remoteip>
Postadelmaga