Xauthority
Der Linux VDA unterstützt Umgebungen, die X11-Anzeigefunktionen (einschließlich xterm und gvim) für die interaktive Remoteverbindung 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 Remote-XClient den Zugriff auf den XServer erlauben möchten, muss der Xhost-Befehl ausgeführt werden, um die Berechtigung auf dem jeweiligen Computer 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 der 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 sich der XClient remote mit Xorg verbindet, müssen zwei Voraussetzungen erfüllt sein:
- Legen Sie die Umgebungsvariable DISPLAY auf den Remote-XServer fest.
- Rufen Sie die
.Xauthority-Datei ab, 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-->
Nachdem Sie Xauthority aktiviert haben, übergeben Sie die Datei .Xauthority manuell oder durch das Einbinden eines freigegebenen Home-Verzeichnisses an den XClient:
-
Übergeben Sie die Datei
.Xauthoritymanuell an den XClientNach dem Start einer ICA®-Sitzung generiert der Linux VDA die Datei
.Xauthorityfür den XClient und speichert die Datei im Home-Verzeichnis des angemeldeten Benutzers. Sie können diese Datei.Xauthorityauf den Remote-XClient-Computer kopieren und die Umgebungsvariablen DISPLAY und XAUTHORITY festlegen.DISPLAYist die in der Datei.Xauthoritygespeicherte 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 festgelegt ist, wird standardmäßig die Datei
~/.Xauthorityverwendet. -
Übergeben Sie die Datei
.Xauthorityan den XClient, indem Sie ein freigegebenes Home-Verzeichnis einbindenDer bequemste Weg ist, ein freigegebenes Home-Verzeichnis für den angemeldeten Benutzer einzubinden. Wenn der Linux VDA eine ICA-Sitzung startet, wird die Datei
.Xauthorityim Home-Verzeichnis des angemeldeten Benutzers erstellt. Wenn dieses Home-Verzeichnis mit dem XClient geteilt wird, muss der Benutzer diese Datei.Xauthoritynicht manuell an den XClient übertragen. Nachdem die Umgebungsvariablen DISPLAY und XAUTHORITY korrekt festgelegt wurden, wird die GUI automatisch auf dem XServer-Desktop angezeigt.
Problembehandlung
Wenn Xauthority nicht funktioniert, führen Sie die folgenden Schritte zur Problembehandlung aus:
-
Als Administrator mit Root-Berechtigung rufen Sie 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 Datei
.Xauthorityverwendet 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. Bei gleicher Anzeigenummer müssen die angezeigten Cookies in den Dateien.Xauthorityvon Xorg und XClient identisch sein. -
Wenn die Cookies identisch sind, überprüfen Sie die Erreichbarkeit des Remote-Anzeigeports, indem Sie die IP-Adresse des Linux VDA und die Anzeigenummer des veröffentlichten Desktops verwenden.
Führen Sie beispielsweise den folgenden Befehl auf dem XClient-Computer aus:
telnet 10.158.11.11 6160 <!--NeedCopy-->Die Portnummer ist die Summe aus 6000 + <Anzeigenummer>.
Wenn dieser Telnet-Vorgang fehlschlägt, blockiert die Firewall möglicherweise die Anforderung.