No se pueden generar archivos xauth usando Ubuntu en WSL

No se pueden generar archivos xauth usando Ubuntu en WSL

Aclaración rápida: tengo X-server ejecutándose en la máquina Windows que aloja la distribución WSL Ubuntu. Puedo ejecutar programas GUI tanto de forma local como remota. Por ejemplo, puedo iniciar gvimdesde el WSL local y también puedo iniciar gvimcuando tengo una sesión SSH.


WSL es bueno para comunicarse con los servidores remotos y logré que X-forwarding funcione. Sin embargo, sigo recibiendo lo siguientetexto adicionalcuando ejecuto ssh -X user@machine_ipel comando.Me pregunto si esto significa que todas mis sesiones de GUI son inseguras.Puedo vivir con ese mensaje si no indica mucha amenaza potencial.

Warning: No xauth data; using fake authentication data for X11 forwarding.

Ejecuté los siguientes pasos de instalación y configuración, pero fallé en el último paso:

mv ~/.Xauthority ~/old.Xauthority 
sudo apt install ssh xauth xorg -y
touch ~/.Xauthority
xauth generate $DISPLAY .

Recibiré el siguiente mensaje de error

xauth: (argv):1:  couldn't query Security extension on display "localhost:0.0"  

He estado reproduciendo el problema descrito en tres máquinas con Windows (dos portátiles y una de escritorio), pero de alguna manera logré deshacerme del Warning: No xauth data;mensaje " " en la cuarta computadora de escritorio. Luego copié lo siguiente desde la cuarta computadora de escritorio al resto de las tres máquinas, no se mejoró nada.

  1. Contenido del ~/.Xauthorityarchivo,
  2. Se agregó lo siguiente a /etc/ssh/config:
    ForwardAgent no
    ForwardX11 no
    ForwardX11Trusted yes
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    XauthLocation /usr/bin/xauth
  1. Se agregó lo siguiente a ~/.ssh/config:
Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes
    Protocol 2
    GSSAPIDelegateCredentials no
    XAuthLocation /usr/bin/xauth

Por último, sigo teniendo la siguiente "conversación" con xauthel programa en todas las máquinas Windows con errores que ejecutan WSL (Ubuntu 18.04 LTS).

User @ machine ➜  ~  xauth                                                   
Using authority file /home/llinfeng/.Xauthority 
xauth> generate $DISPLAY                                                                                  
xauth: (stdin):2:  unable to open display "$DISPLAY".                                                     
xauth> generate $DISPLAY .                                                                            
xauth: (stdin):3:  unable to open display "$DISPLAY".                                                     
xauth> add $DISPLAY .                                                                                     
xauth: (stdin):4:  bad "add" command line                                                                 
xauth>    

Al consultar el manual xauth, addparece ser un comando válido de alguna manera.


Probé tres distribuciones WSL y todas producen el mismo " No xauth data" mensaje de error. Las tres distribuciones de Microsoft Store incluyen: Ubuntu, Ubuntu 18.04 LTS y Pengwin (Debian).


Indique cómo obtener xauthel comando para generar algunos "datos xauth" adecuados.

Respuesta1

Según la publicación y su respuesta, todo funciona bien excepto este mensaje de error.

El mensaje parece decir que se envían "datos de autenticación falsos" a la sesión remota. No veo cómo el uso de esos datos puede beneficiar a cualquier atacante remoto, por lo que no veo por qué no es seguro simplemente ignorar la advertencia de "No hay datos xauth".

WSL no es una implementación completa de Linux. Se implementaron muchas llamadas al sistema y bibliotecas, pero muchas no.

Mi opinión personal: Yo diría que puedes tomar con seguridad que el mensaje de error proviene de una característica mal implementada o no implementada y simplemente ignorarlo.

Respuesta2

Tienes que instalar un servidor X como Xming para que funcione porque Windows no tiene un servidor X.

ssh simplemente reenvía las solicitudes del servidor X de la máquina remota al suyo y, si no lo tiene, genera un error.

después de instalar Xming, ingrese el siguiente comando en el shell WSL, no en ssh

export DISPLAY=:0

este comando debe ejecutarse cada vez que abre una nueva terminal

También puedes agregarlo a~/.bashrc

si no funciona, instale xterm también, instalará todas las bibliotecas X. en ubuntu

sudo apt update;sudo apt install xterm

entonces puedes usar xauth como de costumbre

También puedes desactivarlo usandoxauth +

También debe usar el indicador ssh -Ysi desea utilizar el reenvío X.

ssh -Y user@host

Si instaló xming y no funciona, asegúrese de que la variable DISPLAY esté configurada. esta variable debe configurarse solo en WSL y puede usar xauth.

export DISPLAY=:0

Respuesta3

Puede que sea relevante o no para su situación, pero estaba teniendo problemas con el comando xauth porque:

  • Estaba montando un sistema de archivos drvfs y usándolo como mi hogar
  • drvfs no admite enlaces, ya sean enlaces físicos o enlaces simbólicos
  • xauth intenta utilizar enlaces

Por si sirve de algo, solucioné este problema configurando la variable de entorno XAUTHORITY en alguna ruta en el sistema de archivos wsl ext4.

Lo mismo ocurre con .ICEauthority y ICEAUTHORITY env var. (Aunque la página de manual de iceauth no menciona la var de entorno ICEAUTHORITY, parece funcionar).

información relacionada