
Estoy ejecutando un servidor Ubuntu en VMWare. Y me gustaría reenviar el X11 desde el invitado de Ubuntu al host de Mac.
Lo instalé XQuartz 2.7.9 (xorg-server 1.17.4)
en el host de Mac.
Y el reenvío SSH en Ubuntu está habilitado.
Luego probé lo siguiente en iTerm:
%> echo $DISPLAY
/private/tmp/com.apple.launchd.mjxVyILVrR/org.macosforge.xquartz:0
%> ssh -X root@xxxx
# echo $DISPLAY
# gnome-terminal
Unable to init server: Could not connect: Connection refused
Failed to parse arguments: Cannot open display
$DISPLAY está vacío y el reenvío X11 no funciona.
¿Algunas ideas?
Respuesta1
Intenta ssh -Y root@xxxx
correrxterm
adentroXQuartz en lugar de iTerm. ¿Eso funciona?
Respuesta2
Abra /etc/ssh/sshd_config en el sistema remoto y configure X11Forwarding sí. Luego reinicie el servicio ssh y vuelva a intentarlo.
Respuesta3
Corrígeme si estoy equivocado. Desea acceder a su máquina que ejecuta Ubuntu de forma remota desde su Mac y cuando ingresa 'ssh' a su Ubuntu y cuando intenta 'hacer eco de $DISPLAY' obtiene una respuesta vacía. Probablemente la siguiente solución no funcione en tu caso, pero inténtalo si lo que estás intentando es similar a lo que yo he probado.
Como ya ha descubierto, primero hay que encontrar la variable DISPLAY.
Entonces en tu mac si escribes como un usuario normal
echo $DISPLAY
Entonces lo que obtendrías es algo como lo siguiente (Es el caso que tienes en la mano). De todos modos, todos veréis algo similar en vuestros sistemas.
/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0
Entonces prueba algo como
xeyes
Y ahora sabes que tu pantalla está funcionando.
Ahora, si quieren probar lo mismo que root (por favor, no me ataquen, sé que algunos de ustedes están firmemente en contra del acceso de root), pero si no funciona, en el indicador de root hagan lo siguiente
export DISPLAY=/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0
Lo mismo que encontraste en tu cuenta de usuario normal. Luego copie su '.Xauthority' en '/Users/normal user/.Xauthority' a '/var/root/'. El archivo .Xauthority ya está ahí, pero esto lo corregiría.
cp /Users/normal user/.Xauthority /var/root/
Por supuesto, la exportación podría funcionar, pero no hay nada de malo en hacer lo anterior. Ahora intenta lo siguiente.
echo $DISPLAY
Y deberías ver lo siguiente
/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0
Si ingresa 'ssh' a Ubuntu desde el mensaje de usuario normal, entonces no necesita hacer la parte raíz, pero como uso root para 'ssh' mis sistemas Ubuntu, a menudo tengo que hacer esto.
Luego, cuando ingreses a Ubuntu, escribe
echo $DISPLAY
Y verías algo como lo siguiente
localhost:10.0
Lo anterior funcionaría si ha hecho todas esas otras partes como reenvío, etc.
Nuevamente, si desea utilizar root en su Ubuntu y si el 'echo $DISPLAY' no produce ninguna respuesta, intente lo siguiente (suponiendo que se encuentre en el indicador de root).
cp /home/user name/.Xauthority /root/.Xauthority
Ahora intenta
echo $DISPLAY
nuevamente y verías algo como lo siguiente
localhost:10.0
Para divertirte prueba
xeyes
Y funciona en mi caso. Espero que esto sea útil y resuelva un problema como el de arriba o como el mío con el que se ha encontrado alguien y que pasó unas horas con este problema mientras se rascaba la cabeza y trataba de arrancarse el pelo como yo :-)).
Respuesta4
Después de probar muchas opciones diferentes, esto es lo que funcionó para mí:
En mi Mac:
Primero lanzo xQuartz. Luego voy a mi terminal y ejecuto export DISPLAY=localhost:0
.
En mi PC Linux remota:
Tuve problemas con wayland, así que fui /etc/gdm/custom.conf
y descomenté la línea WaylandEnable=false
. También puse export XAUTHORITY=$HOME/.Xauthority
. Y, por último, establecí export QT_QPA_PLATFORM=xcb
qué es lo que hace que algunas bibliotecas gráficas funcionen en Python.
Después de configurar esto, ahora puede ingresar mediante ssh a su servidor remoto ssh -Y remoteserver@IP
y, con suerte, esto debería funcionar.