Xauthority konfigurieren
Der Linux VDA unterstützt Umgebungen, die X11-Anzeigefunktionen (einschließlich xterm und gvim) für interaktives Remoting verwenden. Diese Funktion bietet einen Sicherheitsmechanismus, der für eine sichere Kommunikation zwischen XClient und XServer erforderlich ist.
-
Es gibt zwei Methoden, um die Berechtigung für diese sichere Kommunikation zu gewährleisten:
- Xhost. Standardmäßig erlaubt Xhost nur dem localhost XClient, mit XServer zu kommunizieren. Wenn Sie einem Remote-XClient den Zugriff auf XServer erlauben möchten, muss der Befehl Xhost ausgeführt werden, um die Berechtigung auf der spezifischen Maschine zu erteilen. Alternativ können Sie auch xhost + verwenden, um jedem XClient die Verbindung zu XServer zu ermöglichen.
-
Xauthority. Die Datei
.Xauthoritybefindet sich im Home-Verzeichnis jedes Benutzers. Sie wird verwendet, um Anmeldeinformationen in Cookies zu speichern, die von xauth zur Authentifizierung von XServer verwendet werden. Wenn eine XServer-Instanz (Xorg) gestartet wird, wird das Cookie verwendet, um Verbindungen zu dieser spezifischen Anzeige zu authentifizieren. -
Funktionsweise
Wenn Xorg startet, wird eine .Xauthority-Datei an Xorg übergeben. Diese .Xauthority-Datei enthält die folgenden Elemente:
- Anzeigenummer
- Remote-Anforderungsprotokoll
-
Cookie-Nummer
- Sie können diese Datei mit dem Befehl xauth durchsuchen. Zum Beispiel:
# xauth -f ~/.Xauthority
# > list
# > us01msip06:107 MIT-MAGIC-COOKIE-1 fb228d1b695729242616c5908f11624b
<!--NeedCopy-->
Wenn XClient remote eine Verbindung zu Xorg herstellt, müssen zwei Voraussetzungen erfüllt sein:
- Setzen Sie die Umgebungsvariable DISPLAY auf den Remote-XServer.
- Besorgen Sie sich die
.Xauthority-Datei, die eine der Cookie-Nummern in Xorg enthält.
Xauthority konfigurieren
Um Xauthority auf dem Linux VDA für die Remote-X11-Anzeige zu aktivieren, müssen Sie die folgenden zwei 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-->
Nach der Aktivierung von Xauthority übergeben Sie die .Xauthority-Datei manuell an XClient oder indem Sie ein freigegebenes Home-Verzeichnis mounten:
-
Die
.Xauthority-Datei manuell an XClient übergebenNach dem Start einer ICA®-Sitzung generiert der Linux VDA die
.Xauthority-Datei für den XClient und speichert die Datei im Home-Verzeichnis des angemeldeten Benutzers. Sie können diese.Xauthority-Datei auf die Remote-XClient-Maschine kopieren und die UmgebungsvariablenDISPLAYundXAUTHORITYsetzen.DISPLAYist die in der.Xauthority-Datei gespeicherte Anzeigenummer undXAUTHORITYist der Dateipfad von Xauthority. Ein Beispiel finden Sie im folgenden Befehl:export DISPLAY={Display number stored in the Xauthority file} export XAUTHORITY={the file path of .Xauthority} <!--NeedCopy-->Hinweis:
Wenn die Umgebungsvariable XAUTHORITY nicht gesetzt ist, wird standardmäßig die Datei
~/.Xauthorityverwendet. -
Die
.Xauthority-Datei an XClient übergeben, indem ein freigegebenes Home-Verzeichnis gemountet wirdDer bequemste Weg ist, ein freigegebenes Home-Verzeichnis für den angemeldeten Benutzer zu mounten. Wenn der Linux VDA eine ICA-Sitzung startet, wird die
.Xauthority-Datei im Home-Verzeichnis des angemeldeten Benutzers erstellt. Wenn dieses Home-Verzeichnis mit XClient geteilt wird, muss der Benutzer diese.Xauthority-Datei nicht manuell an XClient übertragen. Nachdem die Umgebungsvariablen DISPLAY und XAUTHORITY korrekt gesetzt sind, wird die GUI automatisch auf dem XServer-Desktop angezeigt.
Fehlerbehebung
Wenn Xauthority nicht funktioniert, befolgen Sie die folgenden Schritte zur Fehlerbehebung:
-
Rufen Sie als Administrator mit Root-Rechten alle Xorg-Cookies ab:
ps aux | grep -i xorg <!--NeedCopy-->Dieser Befehl zeigt den Xorg-Prozess und die Parameter an, die beim Start an Xorg übergeben wurden. Ein weiterer Parameter zeigt an, welche
.Xauthority-Datei verwendet wird. Zum Beispiel:/var/xdl/xauth/.Xauthority110 <!--NeedCopy-->Zeigen Sie die Cookies mit dem Befehl Xauth an:
Xauth -f /var/xdl/xauth/.Xauthority110 <!--NeedCopy--> -
Verwenden Sie den Befehl Xauth, um die in
~/.Xauthorityenthaltenen Cookies anzuzeigen. Für dieselbe Anzeigenummer müssen die angezeigten Cookies in den.Xauthority-Dateien von Xorg und XClient identisch sein. -
Wenn die Cookies identisch sind, überprüfen Sie die Erreichbarkeit des Remote-Anzeigeports mithilfe 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 den folgenden Befehl auf der XClient-Maschine aus:
telnet 10.158.11.11 6160 <!--NeedCopy-->Die Portnummer ist die Summe von 6000 + <Anzeigenummer>.
Wenn dieser Telnet-Vorgang fehlschlägt, blockiert möglicherweise die Firewall die Anforderung.