He iniciado sesión en un servidor remoto y estoy tratando de mostrar una aplicación x (por ejemplo, Firefox). pero aparece un mensaje de error los siguientes son mis intentos de abrir firefox
Black@Black-PC ~
$ ssh -X kwagjj@$labserver -p 122
[kwagjj@James5 ~]$ firefox
Error: no display specified
[kwagjj@James5 ~]$ exit
logout
Connection to 143.248.146.204 closed.
Black@Black-PC ~
$ ssh -Y kwagjj@$labserver -p 122
[kwagjj@James5 ~]$ firefox
Error: no display specified
[kwagjj@James5 ~]$
Usé -X, -Y porque leí en alguna parte que estas dos opciones están relacionadas con credenciales con respecto a X11 y que estos interruptores harán el trabajo por mí. Incluso sin los modificadores -X, -Y, mi intento falló.
¿Qué significa el error 'no mostrar especificada'?
PD: Lo extraño es que si me conecto al servidor remoto a través de mi PUTTY y repito el comando 'firefox', ¿funciona?!? (Firefox se muestra en la computadora local)
PD: mi computadora local es Windows 7, así que tengo Xming ejecutándose en segundo plano para permitir la visualización de X11. En cuanto al intento escrito en la parte superior, los comandos se escribieron en la terminal Cygwin.
DISPLAY
variable no se configuró. así que lo configuré conexport DISPLAY=:0.0' and executed
xclock` y apareció el xclock. Pero cuandoxclock
Error: Can't open display:
Respuestas:
Asegúrese de tener la variable DISPLAY establecida en su entorno cygwin:
después de conectarse con SSH, verifique si ese shell también conoce la variable DISPLAY correcta con:
fuente
echo $DISPLAY
. Pero aún así la variable DISPLAY en el servidor remoto se establece en nada ..Error: Can't open display: :0.0
export DISPLAY=localhost:0
Acabo de encontrarme con este problema al conectarme a un servidor RHEL7 sin cabeza.
Necesita el paquete xorg-x11-xauth instalado en su host para que la variable DISPLAY se configure y esté debidamente autorizada.
Espero haber salvado a alguien algún tiempo.
fuente
ssh -X
unecho $DISPLAY
volvió una URL + puerto y una llamada dexterm &
abrir un terminal en una ventana local.Gracias a @jensd, @unxnut por ayudarme. basado en sus comentarios pude resolver el problema.
La solución necesitaba dos pasos:
mis intentos anteriores carecen de una o ambas de estas dos condiciones.
De todos modos, para los usuarios posteriores que vean esto, aquí hay ejemplos para mostrarles lo que estoy tratando de decir.
caso 1
mi máquina local no tendrá configurada la variable DISPLAY. Y luego haré un ssh al servidor remoto con el interruptor -X y luego intentaré ejecutarlo
xclock
.como puede ver,
Error: Can't open display:
se muestra un error en el terminal del servidor remoto.case2
esta vez, en la máquina local, especificaré la variable DISPLAY. Pero cuando estoy ssh'ing, no voy a encender el interruptor -X. El resultado será un fracaso:
Al principio puede ver que he configurado correctamente la variable DISPLAY. Pero aun así, después de ssh'ing (sin el modificador -X) el xclock no se ejecuta.
*
setenv | grep DISPLAY
Aquí se puede ver un resultado diferente con (comparar con el caso 1). en el caso 2, el resultado está en blanco. por otro lado, el resultado del caso 1 a esta línea de comando esDISPLAY: undefined variable
... No estoy seguro de cómo se produce esta diferencia, pero me da la impresión de que está relacionado con si has satisfecho la condición 1 o 2 .case3
esta vez, especificaré correctamente la variable DISPLAY en la máquina local y también ssh al servidor remoto con mi interruptor -X activado.
con esta configuración,
xclock
funciona !! Aquí hay una captura de pantalla para demostrar que no estoy mintiendo. El xclock se muestra con éxito en mi máquina local.Nuevamente, mira el resultado de
setenv | grep DISPLAY
en este caso. Ahora se notaDISPLAY=localhost:11.0
. Por lo que sé, esto está relacionado con MIT-MAGIC-COOKIE en el archivo .Xauthority, pero como no sé mucho sobre esto, no iré más allá.Conclusión: de los tres casos anteriores, podemos confirmar que para que X Windows remoto se muestre correctamente, tanto la variable 1. DISPLAY de la máquina local como 2. el
-X
interruptor ssh deben estar configurados correctamente. Por supuesto, el servidor remoto debe permitir el reenvío X11.fuente