Con el reenvío SSH X11 (`ssh -X`), obtenga` No se puede abrir la pantalla` tratando de ejecutar aplicaciones X


22

Puedo iniciar sesión para cortar usando

ssh -X Hostip

pero cuando ejecuto el comando xclock me da este error

Error: Can't open display: localhost:11.0

Verifico mi valor de visualización usando

echo $DISPLAY

y el resultado es

localhost:11.0

Y el reenvío X11 se establece en SÍ en el archivo sshd_config

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

¿Algún consejo de lo que me estoy perdiendo aquí?


3
¿Has probado en -Ylugar de -X?
Flup

2
Además, asegúrese de comprender las implicaciones del uso en -Ylugar de -X. También es posible que desee mirar xhost.
un CVn

1
Para RedHat / CentOS 7 (al menos), necesita el paquete xorg-x11-xauth, según mi respuesta aquí: unix.stackexchange.com/questions/138936/…
Mike S

Respuestas:


18

Uso -Y. Desde la página de manual en ssh:

-Y Habilita el reenvío X11 confiable. Los reenvíos X11 de confianza no están sujetos a los controles de extensión X11 SECURITY.

Sin embargo, si todavía tiene problemas, puede intentar configurar $DISPLAYla IP de su casilla local :

$ export DISPLAY='<ip_address>:11.0'

Puede funcionar establecerlo como

$ export DISPLAY='127.0.0.1:11.0'

La gente parece tener este problema común cuando ssh'ing desde Mac OS X . También es posible que desee configurar

X11UseLocalhost no

En este caso también.


1
Usando XQuartz no pude usar la bandera -Y. "Se rechazó la conexión X11 debido a una autenticación incorrecta".
Erik

55
incluso después de probar sus otras sugerencias, no puedo abrir una pantalla.
Erik

2
Ninguno de estos funcionó para mí tampoco. Necesitaba instalar el soporte XWindow en mi servidor Centos 7 (mínimo) con: yum groupinstall "X Window System" -y
Mark Edington

@ MarkEdington esto se debe a que RedHat / CentOS requieren el paquete xorg-x11-xauth, según mi respuesta aquí: unix.stackexchange.com/questions/138936/…
Mike S

6

esto funcionó para mí:

Cambio

X11UseLocalhost yes

a

X11UseLocalhost no

Gracias don. eso funcionó para mí también. Te di un voto a favor. Creo que el problema que interfirió con el valor predeterminado fue que la máquina específica está habilitada para xhost.
LD James

66
en invitado? ¿anfitrión? ¿Qué archivo de configuración? gracias para completar tu respuesta
Philippe Gachoud

Lo hice funcionar dejando caer la configuración a /etc/ssh/sshd_config.
llinfeng

6

Gracias a /unix//a/12772/61349 por sus instrucciones de diagnóstico.

Asegúrese de que su cliente ssh esté solicitando el reenvío X11 con el indicador -v

ssh example.com -X -v

Y busque el mensaje específico:

debug1: Requesting X11 forwarding with authentication spoofing.

Otro signo de problema revelador es la falta del DISPLAYconjunto de variables de entorno establecido para usted. Si está en blanco / desarmado, hay algo mal. Al menos de acuerdo con la misma publicación acreditada anteriormente , estas variables se configuran automáticamente.


Estaba usando un SSH Control Master mis conexiones ssh así:

Host <hostname>
    ControlMaster auto
    ControlPath ~/.ssh/control/%r@%h:%p
    ControlPersist 10m

Mi conexión ssh anterior no solicitó X11Firwarding, por lo tanto, sshlas opciones de llamadas futuras no se estaban utilizando. Entonces para mi

ssh -Xsolo estaba siendo ignorado por completo

Si no ve "Solicitud de reenvío de X11", pero sí ve las sesiones de reutilización del silenciador;

debug1: auto-mux: Trying existing master
debug1: mux_client_request_session: master session id: 10

Luego debe salir de su ControlMaster actual para esa conexión y volver a conectarse con el indicador -X / -Y.

Para detener su ControlMaster

ssh -O check <hostname>

Master running (pid=2758)

(Esto saldrá de todas las conexiones activas usando ControlMaster)

ssh -O exit <hostname>

Exit request sent.

3

Al intentar reenviar a XQuartz en macOS, solucioné el problema ejecutando el sshcomando ( ssh -Yen mi caso) desde el terminal XQuartz (abierto haciendo clic derecho en el icono XQuartz en el dock y haciendo clic en Aplicaciones> Terminal).


esto funcionó para mí
dli

3

Lo que solucionó esto para mí es simplemente instalar xauth, ¡una vez hecho esto funcionó de maravilla!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.