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 gvim
vom lokalen WSL aus starten und ich kann auch starten, gvim
wenn 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_ip
den 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.
- Inhalt der
~/.Xauthority
Datei, - 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
- 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 xauth
auf 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 xauth
irgendwie add
um einen gültigen Befehl zu handeln.
Ich habe drei WSL-Distributionen ausprobiert und sie alle erzeugen dieselbe No xauth data
Fehlermeldung " ". Die drei Distributionen aus dem Microsoft Store umfassen: Ubuntu, Ubuntu 18.04 LTS und Pengwin (Debian).
Bitte geben Sie an, wie Sie xauth
den 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- -Y
Flag 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.)