¿Cómo depuro "la conexión X11 rechazada debido a una autenticación incorrecta"

10

Tengo un problema con el reenvío de X a través de SSH. He luchado durante años, pero parece que nadie puede ayudar.

Ahora estoy tomando un tacto diferente. ¿Me gustaría saber cómo depurar los errores?

¿Qué registros debo buscar, qué marcas adicionales debo establecer (-v, etc.) y qué debo buscar?

Edición adicional:

Si inicio sesión en Putty en el servidor e intento xeyes, obtengo:

Proxy PuTTY X11: intento de protocolo de autorización incorrecto Error: no se puede abrir la pantalla: localhost: 10.0

Si xauth generate $DISPLAYme sale:

Proxy PuTTY X11: protocolo de autorización incorrecto intentoxauth: (argv): 1: no se puede abrir la pantalla "localhost: 10.0".

wkdmarty
fuente
En su pregunta del otro día , describe diferentes síntomas. ¿Sigue sufriendo "No se puede abrir la pantalla", o resolvió eso? Si resolvió eso, y una de las respuestas a esa pregunta fue útil, debe seleccionarla como respuesta para recompensar a la persona que lo ayudó.
Kenster
De acuerdo, es un error diferente ahora, he cerrado esa pregunta.
wkdmarty
Vea si esta respuesta se aplica a su servidor.
Kenster
Kenster, no tenía ninguno de los archivos rc en el servidor, así que creé uno y pegué el código. Ninguna diferencia.
wkdmarty
En los registros PuTTY, esto aparece después de que trato de ejecutar un programa x (después del inicio de sesión SSH). 2014-09-01 15:16:38 Recibió la solicitud de conexión X11 de 127.0.0.1:59566 2014-09-01 15:16:38 La apertura de la conexión directa X11 fue exitosa 2014-09-01 15:16:38 No queda nada para enviar, cierre de canal 2014-09-01 15:16:38 Conexión X11 reenviada terminada
wkdmarty

Respuestas:

13

Mi solución paso a paso:

1) inicie sesión con la opción -X raíz de inicio de sesión de host remoto

$ ssh -X [email protected]

2) compruebe si existe un archivo .Xauthority

[root @ localhost ~] # ls -al
[root @ localhost ~] # vim .Xauthority

3) copie el archivo .Xauthority al directorio del otro usuario

[root @ localhost ~] # cp .Xauthority / home / oracle /
cp: sobrescribir `/home/oracle/.Xauthority '? y

4) establecer permisos para este archivo

[root @ localhost ~] # oráculo chown: oinstall .Xauthority
[root @ localhost ~] # chmod 0600 .Xautoridad

5) iniciar sesión usuario de Oracle

[root @ localhost ~] # su - oráculo

6) configuración de visualización en localhost: 10.0

[oracle @ localhost ~] $ echo $ DISPLAY
localhost: 10.0
[oráculo @ localhost ~] $ ls -al

7) enumera las cookies xauth existentes

[oracle @ localhost ~] $ xauth lista
localhost.localdomain / unix: 11 MIT-MAGIC-COOKIE-1 310f1b02c1080e73059391c193a1881b
localhost.localdomain / unix: 10 MIT-MAGIC-COOKIE-1 41843db100830a2aa352641ac47bb759

8) agregando

[oracle @ localhost ~] $ xauth add localhost.localdomain / unix: 10 MIT-MAGIC-COOKIE-1 41843db100830a2aa352641ac47bb75

9) prueba

[oráculo @ localhost ~] $ xclock

Espero que les sirva! @wcaraza

Walter Caraza
fuente
2
La parte xauth add .... es el truco
Wei
los pasos 3. y 4. hicieron el truco para mí
kiltek
6

Asegúrese de que el servidor SSH tenga xauthinstalada la herramienta y que su ~/.Xauthorityarchivo se pueda escribir. (Inexistente también está bien, siempre que xauthpueda crearlo).

Compruebe si los datos de xauth se están actualizando:

server$ xauth list

Intente agregar manualmente datos ficticios de xauth (nuevamente, en el servidor SSH) y vea si xauthtiene algún problema (por ejemplo, no poder crear el archivo de bloqueo o modificar el archivo Xauthority):

server$ xauth add localhost:123 MIT-MAGIC-COOKIE-1 d7e2e4a8c5aa4430bfcc2abb436940d2

Si es necesario, vuelva a ejecutar debajo strace.

Ejecute el servicio SSH en modo de depuración, configurando LogLevel DEBUG2en la configuración del servidor ( /etc/ssh/sshd_config), o iniciando sshd en modo de depuración directamente:

server$ sshd -rddp 12234

(En este ejemplo, 12234es el puerto SSH temporal al que necesita conectarse. Cualquier puerto libre servirá).

usuario1686
fuente
Gracias. Xauth en el servidor puede escribir en el archivo .Xauthority. Pero, ¿qué debería estar configurando? servidor = N40L, cliente = Lin001. ¿Debería la lista xauth en N40L mostrar una entrada para localhost: 10 MIT-MAGIC-COOKIE-1 {Lin001'sHexKey}?
wkdmarty
@wkdmarty: Sí, su sshd escuchará en un puerto TCP correspondiente a mostrar: 10 (o: 11,: 12 ...), y esto aparecerá como "localhost: 10". Sin embargo, en cuanto a la clave hexadecimal, realmente no sé si está destinada a usar la misma clave: creo que ssh realmente genera una nueva y actúa como un proxy ...
user1686
ok perfecto, puedo ver que 0.0.0.0:6011 está escuchando. Mi variable DISPLAY indica N40L: 11.0, que creo que está mal, así que lo cambiaré a DISPLAY = localhost: 10.0. No, sigue fallando. Noté en la conexión SSH esta línea: debug2: x11_get_proto / usr / bin / xauth list: 0.0 2> / dev / null donde haya visto el registro de conexión SSH, esta línea es diferente ... mostrando una generación de claves, nunca : 0.0.?
wkdmarty
@wkdmarty: Normalmente, sshd debería establecer $ DISPLAY en el valor correcto ... y el puerto 6011 corresponde a la pantalla 11, no 10, de todos modos.
user1686
1
"Mi variable DISPLAY dice N40L: 11.0 ... así que lo cambiaré". Para ser franco, deje DISPLAY solo. Si ssh configura el reenvío X11, establecerá DISPLAY en un valor que funcionará. Anular el valor que establece ssh solo hará que el proceso de solución de problemas sea más difícil.
Kenster
3

Está funcionando, está funcionando. jaja.

FINALMENTE.

Después de descubrir que no era el sistema, al agregar un usuario de prueba (cuyo reenvío x funcionó "de fábrica"), pensé en comenzar a copiar los archivos de inicio .bash * para virginizar al usuario "roto".

Ninguno de los archivos era diferente, por lo que luego eliminé el directorio .ssh de usuarios. Cuando entré, gimió sobre "El servidor rechazó nuestra clave", pero pude iniciar sesión con una contraseña. Una vez que inicie sesión, podría x reenviar perfectamente.

Ahora intentaré configurar la clave nuevamente y ver si puedo hacer que funcione también. Entonces volverá a la normalidad.

wkdmarty
fuente
Esto también funcionó para mí. Intenté todos los demás métodos, pero sí, aparentemente el problema radicaba en las claves.
Auxiliar
1

Una cosa más que puede causar este problema es la existencia de un ~/.ssh/rcarchivo en el servidor, la máquina a la que se está conectando. Elimínelo (o cámbiele el nombre) para resolver el problema.

Ken Jackson
fuente
1
Por man sshd, sshd se ejecuta en ~/.ssh/rclugar de xauth@PimpJuiceIT.
Ken Jackson
¡Gracias! Para obtener más detalles, consulte: docstore.mik.ua/orelly/networking_2ndEd/ssh/… . Debería ser posible agregar los comandos apropiados para iniciar xauth dentro del archivo rc, pero no lo he encontrado.
Matt B.
0

rm ~/.Xauth* y luego reconectarte.

Esto funciona para mi. Para más detalles

zzz92
fuente