2011-11-16 19 views
13

He intentado hacer que el reenvío de puertos X11 funcione desde mi computadora portátil. No puedo entender por qué no va a funcionar.ssh El reenvío de X11 no funcionará

me sale este mensaje cuando trato de ejecutar xterm:

X11 connection rejected because of wrong authentication. 
xterm Xt error: Can't open display: localhost:10.0 

No sé si esto está relacionado o no, pero cuando me conecto, consigo este mensaje:

/usr/bin/xauth: timeout in locking authority file /home/sphillips/.Xauthority 

Me he preguntado si el problema es que mi usuario local en mi computadora portátil es skp y el nombre de usuario en este servidor es sphillips. He podido reenviar X11 para que funcione con mis otras computadoras que usan el mismo inicio de sesión skp.

Además, el reenvío de puertos X11 funciona desde una máquina Windows utilizando Xming y Putty en el mismo servidor. Tengo que configurar manualmente la variable DISPLAY en la dirección IP y mostrar 0.0, pero funciona.

He ejecutado un xhost + en mi máquina con el intento de intentar eludir cualquier problema de seguridad. Eso todavía no funcionó.

En el servidor, puedo comprobar la configuración:

$ sudo grep X11Forwarding /etc/ssh/sshd_config 
#X11Forwarding no 
X11Forwarding yes 
# X11Forwarding no 

Y en mi máquina así:

$ sudo grep X11Forwarding /etc/ssh/sshd_config 
[sudo] password for skp: 
#X11Forwarding no 
X11Forwarding yes 
# X11Forwarding no 

Mi servidor es RedHat Enterprise Linux 6 y mi portátil es Fedora 15.

¿Alguien me puede dar alguna idea sobre las cosas para intentar que el reenvío SSH X11 funcione desde mi computadora portátil?

+0

¡Conseguí la insignia de tumbleweed para esto! ¿Eso es algo malo o algo bueno? Solo desearía que alguien tuviera algunas ideas sobre qué más podría probar. – digitaleagle

Respuesta

2

Tengo el mismo problema en un contenedor Debian OpenVZ y el problema parece provenir de mi archivo/etc/hosts donde "localhost" se vio afectado a la dirección IP de LAN, no a 127.0.0.1.

Antes:

192.168.0.15 dagi dagi.domain.net localhost localhost.localdomain 

Después:

192.168.0.15 dagi dagi.domain.net 
127.0.0.1  localhost localhost.localdomain 

Después de eso, tanto ssh -X y ssh -Y trabajó como un encanto sin ni siquiera reiniciar sshd.

+0

Gracias Chi - ese es un buen consejo. Tengo ese problema Mi/etc/hosts en mi computadora portátil apunta al host a 127.0.0.1. Pero lo cambié y aún así no fue diferente. De hecho, probé las 3 direcciones IP. Probé la IP por cable, la IP inalámbrica y la VPN (tun0-00). Todavía obtengo los mismos resultados. – digitaleagle

+0

Thnks Chi - esto me ha ahorrado mucho tiempo. – jhilmer

12

¡Finalmente encontré la respuesta (al menos para mi situación)! El problema fue SELinux. Apagué SELinux, y funcionó sin problemas.

Si está interesado en todos los detalles sangrientos, puede leer al respecto en my blog, pero permítame detallar los hechos pertinentes aquí ...

en la máquina remota, solía dmesg para ver los mensajes de registro:

dmesg | tail 

he encontrado una serie de mensajes de la siguiente manera:

type=1400 audit(1332520527.110:51337): avc: denied { read } for pid=25240 comm="sshd" name="authorized_keys" dev=dm-5 ino=167 scontext=unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:home_root_t:s0 tclass=file 

Puede comprobar el estado de SELinux con este comando:

$ sestatus 
SELinux status: enabled 
SELinuxfs mount: /selinux 
Current mode: permissive 
Mode from config file: permissive 
Policy version: 24 
Policy from config file: targeted 

puede convertirlo a modo permisivo con este comando:

setenforce 0 

Para obtener más información sobre SELinux, encontré Red Hat's guide helpful. Además, para otros problemas de SSH, encontré David's blog útil para que logge la tarea de ayudar.

Para mí, después de eso, mi reenvío X11 comenzó a funcionar sin problemas.

SELinux impedía muchas otras cosas diferentes. No pudo crear los archivos necesarios para que la autenticación de claves funcione. También lo encontré bloqueando que ssh-keygen cree claves en el directorio de inicio.

0
sudo grep X11Forwarding /etc/ssh/sshd_config 

X11Forwarding yes 
#sestatus 
SELinux status: enabled 
SELinuxfs mount: /selinux 
Current mode: permissive 
Mode from config file: permissive 
Policy version: 24 
Policy from config file: targeted 
#You can turn it to permissive mode with this command: 
#setenforce 0 
1

Aparte de la respuesta de @Chl s anterior, también tenía un archivo corrupto ~/.Xauthority.

Por alguna razón, fue propiedad de root incluso en mi directorio personal. Entonces tuve que marcar sudo -s y luego lo borré.

vuelve a crear con touch ~/.Xauthority

Después de que el reenvío de X trabajó para mí, bajo Ubuntu 14.04.

+0

Del mismo modo, simplemente no * tenía * un archivo '~/.Xauthority', y crearlo (vacío) resolvió el problema. –

2

Me topé con esto también. Pero en mi caso fue porque eliminé el soporte de IPv6 hace algunos días. Luego me topé con this thread explicando cómo asegurarme de que sshd use solo IPv4.

Esta es la forma en que lo hice, añadir lo siguiente:

AddressFamily inet 

a su ssh_config-archivo (en Ubuntu/etc/ssh/sshd_config) y hacer que sshd recargar su configuración (kill pid -SIGHUP-de- sshd).

+0

¡Además, la última imagen de disco de arranque de Ubuntu de Google Compute Engine necesita esta línea cuando intenta usar ssh con Putty! Pasé un día trabajando resolviendo esto. http://www.straightrunning.com/XmingNotes/trouble.php –

+0

Puede probar esto con 'ssh' cli args' -o "AddressFamily inet" ' – danodonovan

Cuestiones relacionadas