Estoy tratando de abrir xterm
en mi servidor remoto (Ubuntu Server 10.04) con ssh:
ssh -X name@machine xterm
pero el error devuelto es:
xterm Xt error: Can't open display: :0.0`
Busqué en Google e intenté todo lo que encontré. Aún recibo este error. La variable DISPLAY se debe configurar automáticamente, ¿verdad?
Parte de sshd_config
:
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
¿Algún consejo?
xterm
en la terminal actual antes de ssh-ing?Respuestas:
Si ssh puede establecer la conexión, se establecerá
DISPLAY
en el valor adecuado. Como haX11DisplayOffset
establecido en 10 (el valor predeterminado), ssh usará la primera pantalla disponible a partir de 10. Si ve un valor inferior a 10¹, entonces algo está interfiriendo con el reenvío X11 normal configurado por ssh, al menos por primordialDISPLAY
. El valor:0
(o:0.0
la parte posterior al punto es irrelevante) indica la primera pantalla que se inició en la máquina, que en casos típicos es la sesión activa (o el mensaje de inicio de sesión gráfico) en la consola de la máquina.La explicación más probable para el comportamiento que observa es que se establece uno de sus archivos de configuración de shell
DISPLAY
. El culpable más obvio es~/.bashrc
(que debido a una peculiaridad de bash se ejecuta cada vez que el padre de bash esrshd
osshd
, incluso si el shell no es interactivo). Otro archivo que define variables de entorno es/etc/environment
. Si ese es el caso, la solución es obvia: no establezcaDISPLAY
allí. (Hay muy pocos casos en los que deba configurarloDISPLAY
manualmente).Hay otras explicaciones exóticas. Esto podría suceder si ha cambiado su shell de inicio de sesión a
screen
(DISPLAY
una buena idea en teoría, pero no práctica) y tiene un archivo de inicialización de shell que se establece a la fuerza dentro de la pantalla (no es una buena idea). Esto también podría suceder si configuró el servidor para aceptar las variables de entorno enviadas por el cliente (AcceptEnv
directiva ensshd_config
), el cliente está enviandoDISPLAY
y no se pudo establecer la conexión X. O podría suceder si configura una variable de entorno en el servidor a través de lacommand
directiva in~/.ssh/authorized_keys
. Oxterm
podría ser un guión.¹ O cualquiera que sea el valor de
X11DisplayOffset
está en la configuración del servidor, pero casi nunca ha cambiado desde el valor predeterminado.fuente
DISPLAY=localhost:11.0
en mienv
, pero su relevancia y si debería cambiarlo noDISPLAY 10.0
está claro.DISPLAY=:0 xterm
y todavía recibo elxterm: Xt error: Can't open display: :0
error, por lo que la variable de entorno no es el problema.Su comando debería funcionar, o al menos lo hace para mí. Intenta esto en su lugar:
Editar (1):
Prueba esto:
Eso debería mostrar todo el entorno. Debería haber varias cosas SSH allí, y también PANTALLA. PANTALLA debe ser 10.0.
También puedes probar esto:
fuente
-Y
pero tampoco funcionó. Todavía me saleCan't open display: :0.0
localhost:10.0
El control de acceso de X probablemente esté en el camino.
Ejecute
xhost +
(desde el paquetex11-xserver-utils
) para deshabilitar completamente el control de acceso.fuente
Además
X11Forwarding yes
, también necesitaba agregaren
/etc/ssh/sshd_config
como se describe aquí .
fuente
Descubrí que xauth no se había instalado.
fuente
Además, compruebe que tiene X11 instalado en el extremo del cliente. Estaba teniendo este problema cuando actualicé mi Mac a OS X Mountain Lion. Mountain Lion elimina X11, por lo que debe instalarlo nuevamente a través del proyecto de código abierto X Quartz. http://xquartz.macosforge.org/landing/
fuente
Primero debe abrir la conexión y, una vez establecida, abrir xterm.
fuente
ssh -X name@machine
y después de la conexiónxterm
me sale el mismo error. ¿Te refieres a eso? ;)ssh
se conecta primero, luego se inicia xterm en esessh
entorno. De cualquier manera, es casi lo mismo solo si lo usassh -X remote
primero, luego puede verificar si loecho $DISPLAY
hace para asegurarse de que$DISPLAY
esté configurado correctamente en la computadora remota después de unssh -X
.