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.