XAuth-Dateien können mit Ubuntu auf WSL nicht generiert werden

XAuth-Dateien können mit Ubuntu auf WSL nicht generiert werden

Kurze Klarstellung: Auf dem Windows-Rechner, auf dem die WSL-Ubuntu-Distribution gehostet wird, läuft ein X-Server. Ich kann GUI-Programme sowohl lokal als auch remote starten. Ich kann beispielsweise gvimvom lokalen WSL aus starten und ich kann auch starten, gvimwenn ich eine SSH-Sitzung habe.


WSL eignet sich gut für die Kommunikation mit den Remote-Servern und ich habe es geschafft, X-Forwarding zum Laufen zu bringen. Dennoch erhalte ich immer wieder die folgendezusätzlicher Textwenn ich ssh -X user@machine_ipden Befehl ausführe.Ich frage mich, ob dies bedeutet, dass alle meine GUI-Sitzungen unsicher sind?Ich kann mit einer solchen Nachricht leben, solange sie keine große potenzielle Bedrohung darstellt.

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

Ich habe die folgenden Installations- und Konfigurationsschritte ausgeführt, aber der letzte Schritt ist fehlgeschlagen:

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

Ich erhalte die folgende Fehlermeldung

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

Ich habe das beschriebene Problem auf drei Windows-Rechnern (zwei Laptops und einem Desktop) reproduziert, habe es aber irgendwie geschafft, die Meldung " " auf dem vierten Desktop-Computer loszuwerden Warning: No xauth data;. Ich habe dann Folgendes vom vierten Desktop-Computer auf die restlichen drei Rechner kopiert, es hat sich nichts verbessert.

  1. Inhalt der ~/.XauthorityDatei,
  2. Folgendes wurde hinzugefügt zu /etc/ssh/config:
    ForwardAgent no
    ForwardX11 no
    ForwardX11Trusted yes
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    XauthLocation /usr/bin/xauth
  1. Folgendes wurde hinzugefügt zu ~/.ssh/config:
Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes
    Protocol 2
    GSSAPIDelegateCredentials no
    XAuthLocation /usr/bin/xauth

Schließlich erhalte ich xauthauf allen fehlerhaften Windows-Rechnern mit WSL (Ubuntu 18.04 LTS) immer wieder die folgende „Konversation“ mit dem Programm.

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>    

Beim Überprüfen des Handbuchs scheint es sich xauthirgendwie addum einen gültigen Befehl zu handeln.


Ich habe drei WSL-Distributionen ausprobiert und sie alle erzeugen dieselbe No xauth dataFehlermeldung " ". Die drei Distributionen aus dem Microsoft Store umfassen: Ubuntu, Ubuntu 18.04 LTS und Pengwin (Debian).


Bitte geben Sie an, wie Sie xauthden Befehl zum Generieren ordnungsgemäßer „XAuth-Daten“ erhalten.

Antwort1

Dem Beitrag und Ihrer Antwort zufolge funktioniert alles richtig, bis auf diese Fehlermeldung.

Die Meldung scheint zu besagen, dass „gefälschte Authentifizierungsdaten“ an die Remote-Sitzung gesendet werden. Ich sehe nicht, wie ein Remote-Angreifer von der Verwendung dieser Daten profitieren könnte, und ich sehe daher nicht, warum es nicht sicher sein sollte, die Warnung „Keine Xauth-Daten“ einfach zu ignorieren.

WSL ist keine vollständige Implementierung von Linux. Viele Systemaufrufe und Bibliotheken wurden implementiert, viele jedoch nicht.

Meine persönliche Meinung: Ich würde sagen, Sie können die Fehlermeldung getrost als Folge einer solchen falsch oder nicht implementierten Funktion betrachten und sie einfach ignorieren.

Antwort2

Sie müssen einen X-Server wie Xming installieren, damit es funktioniert, da Windows keinen X-Server hat.

ssh leitet lediglich die X-Server-Anfragen des Remote-Computers an Ihren weiter. Wenn Sie es nicht haben, wird ein Fehler ausgegeben.

Geben Sie nach der Installation von Xming den folgenden Befehl in der WSL-Shell ein, nicht in SSH

export DISPLAY=:0

dieser Befehl muss jedes Mal ausgeführt werden, wenn Sie ein neues Terminal öffnen

Sie können es auch hinzufügen zu~/.bashrc

wenn es nicht funktioniert, installieren Sie auch xterm, es installiert alle X-Bibliotheken. auf Ubuntu

sudo apt update;sudo apt install xterm

dann können Sie xauth wie gewohnt verwenden

Sie können es auch deaktivieren mitxauth +

Sie müssen auch das SSH- -YFlag verwenden, wenn Sie X-Weiterleitung verwenden möchten.

ssh -Y user@host

Wenn Sie Xming installiert haben und es nicht funktioniert, stellen Sie bitte sicher, dass die Variable DISPLAY festgelegt ist. Diese Variable sollte nur auf WSL festgelegt werden und Sie können Xauth verwenden.

export DISPLAY=:0

Antwort3

Das mag für Ihre Situation relevant sein oder auch nicht, aber ich hatte aus folgendem Grund Probleme mit dem Befehl xauth:

  • Ich habe ein drvfs-Dateisystem gemountet und es als mein Home-
  • drvfs unterstützt keine Links – weder Hardlinks noch Symlinks
  • xauth versucht Links zu verwenden

Ich habe dieses Problem umgangen, indem ich die Umgebungsvariable XAUTHORITY auf einen Pfad im WSL-Ext4-Dateisystem gesetzt habe.

Das Gleiche gilt für .ICEauthority und die Umgebungsvariable ICEAUTHORITY. (Auch wenn die Manpage von iceauth die Umgebungsvariable ICEAUTHORITY nicht erwähnt, scheint es zu funktionieren.)

verwandte Informationen