Xauthority konfigurieren
Der Linux VDA unterstützt Umgebungen, die X11-Anzeigefunktionen (einschließlich xterm und gvim) für interaktive Fernzugriffe 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 sichern:
- Xhost. Standardmäßig erlaubt Xhost nur dem lokalen XClient, mit dem XServer zu kommunizieren. Wenn Sie einem entfernten XClient den Zugriff auf den 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 zum XServer zu erlauben.
-
Xauthority. Die
.Xauthority-Datei befindet sich im Home-Verzeichnis jedes Benutzers. Sie wird verwendet, um Anmeldeinformationen in Cookies zu speichern, die von xauth zur Authentifizierung des XServers verwendet werden. Wenn eine XServer-Instanz (Xorg) gestartet wird, wird das Cookie verwendet, um Verbindungen zu dieser spezifischen Anzeige zu authentifizieren. -
Funktionsweise
Wenn Xorg gestartet wird, wird eine .Xauthority-Datei an Xorg übergeben. Diese .Xauthority-Datei enthält die folgenden Elemente:
- Anzeigenummer
- Protokoll für Remote-Anfragen
-
Cookienummer
- Sie können diese Datei mithilfe des Befehls
xauthdurchsuchen. Zum Beispiel:
# xauth -f ~/.Xauthority
# > list
# > us01msip06:107 MIT-MAGIC-COOKIE-1 fb228d1b695729242616c5908f11624b
<!--NeedCopy-->
Wenn sich XClient remote mit Xorg verbindet, müssen zwei Voraussetzungen erfüllt sein:
- Die Umgebungsvariable DISPLAY auf den Remote-XServer setzen.
- Die
.Xauthority-Datei abrufen, die eine der Cookienummern 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 dem Aktivieren von Xauthority übergeben Sie die .Xauthority-Datei manuell an den XClient oder durch das Einbinden eines freigegebenen Home-Verzeichnisses:
-
Die
.Xauthority-Datei manuell an den XClient übergebenNach dem Starten 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 entfernte XClient-Maschine kopieren und die UmgebungsvariablenDISPLAYundXAUTHORITYfestlegen.DISPLAYist die Anzeigenummer, die in der.Xauthority-Datei gespeichert ist, 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
XAUTHORITYnicht festgelegt ist, wird standardmäßig die Datei~/.Xauthorityverwendet. -
Die
.Xauthority-Datei durch das Einbinden eines freigegebenen Home-Verzeichnisses an den XClient übergebenDie bequemste Methode ist, ein freigegebenes Home-Verzeichnis für den angemeldeten Benutzer einzubinden. Wenn der Linux VDA eine ICA-Sitzung startet, wird die
.Xauthority-Datei im Home-Verzeichnis des angemeldeten Benutzers erstellt. Wenn dieses Home-Verzeichnis mit dem XClient geteilt wird, muss der Benutzer diese.Xauthority-Datei nicht manuell an den XClient übertragen. Nachdem die UmgebungsvariablenDISPLAYundXAUTHORITYkorrekt festgelegt sind, wird die GUI automatisch auf dem XServer-Desktop angezeigt.
Fehlerbehebung
Wenn Xauthority nicht funktioniert, führen Sie die folgenden Schritte zur Fehlerbehebung aus:
-
Als Administrator mit Root-Rechten alle Xorg-Cookies abrufen:
ps aux | grep -i xorg <!--NeedCopy-->Dieser Befehl zeigt den Xorg-Prozess und die Parameter an, die beim Starten an Xorg übergeben werden. Ein weiterer Parameter zeigt an, welche
.Xauthority-Datei verwendet wird. Zum Beispiel:/var/xdl/xauth/.Xauthority110 <!--NeedCopy-->Die Cookies mithilfe des Befehls Xauth anzeigen:
Xauth -f /var/xdl/xauth/.Xauthority110 <!--NeedCopy--> -
Verwenden Sie den Befehl
Xauth, um die in~/.Xauthorityenthaltenen Cookies anzuzeigen. Bei gleicher 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 Anfrage.