
Estoy conectado por ssh a una computadora remota y xforwarding funciona bien... pero tan pronto como hago "sudo su -" o "sudo su user2", ya no envía nada, lo que me da el error:
X11 connection rejected because of wrong authentication.
xterm Xt error: Can't open display: localhost:10.0
¿Algunas ideas?
Gracias
Respuesta1
- Habilite el reenvío X-11 en su cliente
- Inicia sesión como tu usuario normal
echo $DISPLAY
para obtener la pantalla asociadaxauth list
, busque el número de pantalla que corresponde con lo que encontró en el n.° 3 y cópielo- Sudo para rootear
xauth add <paste in what you copied from #4>
- Ahora puedes ejecutar comandos como root y podrás ver la conexión de reenvío X11.
Respuesta2
Antes de ti sudo
, haz esto:
$ xauth extract /tmp/xauthstuff $DISPLAY
Después de ti sudo
, haz esto:
# xauth merge /tmp/xauthstuff
¿Esto funciona para tí?
PD: recuerda rm /tmp/xauthstuff
después
Respuesta3
No tengo acceso a la cuenta raíz para hacer nada de lo anterior, así que aquí hay una solución alternativa que utilicé.
Primero, acceda a su cuenta mediante ssh como lo hace normalmente y pruebe que todo funciona.
ssh -Y <you>@<your_server>
Por lo general, simplemente enciendo un XTerm para asegurarme de tener conectividad. Si todo está bien, copie el archivo .XAuthority que está en <you>
el directorio de inicio y colóquelo en un directorio público.
cp ~/.Xauthority /tmp/tempXAuth
Asegúrese de usar chmod 777 en ese archivo en el directorio público para que la cuenta sudo pueda usarlo en el paso posterior.
chmod 777 /tmp/tempXAuth
ahora sudo al usuario que necesita para trabajar como
sudo su - <other_user>
Una vez que lo esté <other_user>
, haga una copia de seguridad del .Xauthority existente y luego copie el "bueno".
cp ~/.Xauthority ~/.Xauthority.bak
cp /tmp/tempXAuth ~/.Xauthority
Debería poder ejecutar cualquier programa X y autenticarlo con su sesión actual de XServer.
Respuesta4
Como usuario con el que normalmente inicia sesión escriba:
cd
sudo cp .Xauthority /root/
Luego puedes cambiar a root usando:
sudo su