Konfigurieren von Xauthority
Der Linux VDA unterstützt Umgebungen, in denen X11-Anzeigefunktionalität (einschließlich xterm
und gvim
) für interaktives Remoting verwendet wird. Dieses Feature bietet einen Sicherheitsmechanismus für die sichere Kommunikation zwischen XClient und XServer.
Es gibt zwei Methoden zum Sicherstellen der Berechtigung für die sichere Kommunikation:
- Xhost. Standardmäßig erlaubt Xhost nur die Kommunikation zwischen dem XClient auf Localhost und XServer. Wenn Sie den Zugriff eines Remote-XClient auf XServer zulassen, muss mit dem Xhost-Befehl die Berechtigung für die spezifische Maschine gewährt werden. Alternativ dazu können Sie auch xhost + verwenden, um damit alle XClient-Instanzen eine Verbindung zu XServer herstellen können.
-
Xauthority. Die
.Xauthority
-Datei ist im Homeverzeichnis von Benutzern. Sie wird zum Speichern von Anmeldeinformationen in Cookies verwendet, die von xauth für die Authentifizierung von XServer verwendet werden. Wenn eine XServer-Instanz (Xorg) gestartet wird, werden Verbindungen mit dem Cookie bei der spezifischen Anzeige authentifiziert.
Funktionsweise
Wenn Xorg gestartet wird, wird eine .Xauthority
-Datei an Xorg übergeben. Diese .Xauthority
-Datei enthält folgende Elemente:
- Anzeigenummer
- Remoteanfrageprotokoll
- Cookienummer
Sie können diese Datei mit dem Befehl xauth
durchsuchen. Beispiel:
# xauth -f ~/.Xauthority
# > list
# > us01msip06:107 MIT-MAGIC-COOKIE-1 fb228d1b695729242616c5908f11624b
<!--NeedCopy-->
Wenn XClient eine Remoteverbindung mit Xorg herstellt, müssen zwei Voraussetzungen erfüllt sein:
- Die Umgebungsvariable DISPLAY muss auf den Remote-XServer festgelegt sein.
- Rufen Sie die
.Xauthority
-Datei ab, die eine der Cookienummern in Xorg enthält.
Konfigurieren von Xauthority
Um Xauthority im Linux VDA für X11-Remoteanzeige zu aktivieren, müssen Sie die zwei folgenden Registrierungsschlüssel erstellen:
sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Xorg" -t "REG_DWORD" -v "XauthEnabled" -d "0x00000001" --force
sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Xorg" -t "REG_DWORD" -v "ListenTCP" -d "0x00000001" --force
<!--NeedCopy-->
Übergeben Sie nach dem Aktivieren von Xauthority die .Xauthority
-Datei manuell oder über ein freigegebenes Homeverzeichnis an den XClient:
-
Manuelle Übergabe der
.Xauthority
-Datei an den XClientNach dem Starten einer ICA-Sitzung generiert der Linux VDA die
.Xauthority
-Datei für den XClient und speichert die Datei im Homeverzeichnis des angemeldeten Benutzers. Sie können die.Xauthority
-Datei auf die remote XClient-Maschine kopieren und die UmgebungsvariablenDISPLAY
undXAUTHORITY
festlegen.DISPLAY
ist die in der.Xauthority
-Datei gespeicherte Anzeigenummer undXAUTHORITY
ist der Dateipfad von Xauthority. Ein Beispiel ist der folgende Befehl:export DISPLAY={Display number stored in the Xauthority file} export XAUTHORITY={the file path of .Xauthority} <!--NeedCopy-->
Hinweis:
Wenn die Umgebungsvariable
XAUTHORITY
nicht festgelegt ist, wird standardmäßig die Datei~/.Xauthority
verwendet. -
Übergabe der
.Xauthority
-Datei über ein freigegebenes Homeverzeichnis an den XClientEine bequeme Methode ist das Bereitstellen eines freigegebenen Homeverzeichnisses für den Benutzer, der sich anmeldet. Wenn der Linux VDA eine ICA-Sitzung startet, wird die
.Xauthority
-Datei im Homeverzeichnis des angemeldeten Benutzers erstellt. Wenn dieses Homeverzeichnis für den XClient freigegeben wird, braucht der Benutzer die.Xauthority
-Datei nicht manuell an den XClient zu übertragen. Wenn die UmgebungsvariablenDISPLAY
undXAUTHORITY
richtig festgelegt sind, wird die GUI automatisch auf dem XServer-Desktop angezeigt.
Problembehandlung
Wenn Xauthority nicht funktioniert, folgen Sie diesen Anleitungen zur Problembehandlung:
-
Rufen Sie als Administrator mit Root-Privilegien alle Xorg-Cookies ab:
ps aux | grep -i xorg <!--NeedCopy-->
Mit diesem Befehl wird der Xorg-Prozess angezeigt sowie die Parameter, die beim Starten an Xorg übergeben wurden. Ein weiterer Parameter zeigt an, welche
.Xauthority
-Datei verwendet wurde. Beispiel:/var/xdl/xauth/.Xauthority110 <!--NeedCopy-->
Zeigen Sie Cookies mit dem Befehl Xauth an:
Xauth -f /var/xdl/xauth/.Xauthority110 <!--NeedCopy-->
-
Zeigen Sie mit dem Befehl
Xauth
die in~/.Xauthority
enthaltenen Cookies an. Für eine bestimmte Anzeigenummer müssen die angezeigten Cookies in den.Xauthority
-Dateien von Xorg und XClient dieselben sein. -
Wenn die Cookies dieselben sind, überprüfen Sie den Zugriff auf den Remoteanzeigeport mit der IP-Adresse des Linux VDA (z. B. 10.158.11.11) und der Anzeigenummer des veröffentlichten Desktops (z. B. 160).
Führen Sie folgenden Befehl auf der XClient-Maschine aus:
telnet 10.158.11.11 6160 <!--NeedCopy-->
Die Portnummer ist die Summe von 6000 + <display number>.
Wenn dieser Telnet-Vorgang fehlschlägt, wird die Anfrage möglicherweise von der Firewall blockiert.