Xauthority
Der Linux VDA unterstützt Umgebungen, die die X11-Anzeigefunktionalität (einschließlich xterm und gvim) für interaktives Remoting verwenden. 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 Datei 
.Xauthoritybefindet sich im Basisverzeichnis jedes Benutzers. 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. 
So funktioniert es
Beim Start von Xorg wird eine Datei .Xauthority an Xorg übergeben. Diese .Xauthority-Datei enthält die folgenden Elemente:
- Anzeigenummer
 - Remoteanfrageprotokoll
 - Cookienummer
 
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 eine Remoteverbindung mit Xorg herstellt, müssen zwei Voraussetzungen erfüllt sein:
- Die Umgebungsvariable DISPLAY muss auf den Remote-XServer festgelegt sein.
 - Holen Sie sich die Datei 
.Xauthority, die eine der Cookie-Nummern in Xorg enthält. 
Xauthority konfigurieren
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-->
Nachdem Sie Xauthority aktiviert haben, übergeben Sie die Datei .Xauthority manuell oder durch Einbinden eines gemeinsamen Basisverzeichnisses an den XClient:
- 
    
Übergeben Sie die Datei
.Xauthoritymanuell an den XClientNach dem Starten einer ICA-Sitzung generiert der Linux VDA die Datei
.Xauthorityfür den XClient und speichert die Datei im Basisverzeichnis des angemeldeten Benutzers. Sie können diese Datei.Xauthorityauf die Remote-XClient-Maschine kopieren und die UmgebungsvariablenDISPLAY und XAUTHORITY festlegen.DISPLAYist die in der Datei.Xauthoritygespeicherte Anzeigenummer undXAUTHORITYist 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
~/.Xauthorityverwendet. - 
    
Übergeben Sie die Datei
.Xauthorityan den XClient, indem Sie ein gemeinsames Basisverzeichnis mountenEine 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 Datei
.Xauthorityim Basisverzeichnis des angemeldeten Benutzers erstellt. Wenn dieses Basisverzeichnis mit dem XClient geteilt wird, muss der Benutzer diese Datei.Xauthoritynicht manuell an den XClient übertragen. Wenn die Umgebungsvariablen DISPLAY und XAUTHORITY 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
.XauthorityDatei verwendet wird. 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
Xauthdie in~/.Xauthorityenthaltenen Cookies an. Für dieselbe Anzeigenummer müssen die angezeigten Cookies in den Dateien.Xauthorityvon Xorg und XClient identisch sein. - 
    
Wenn die Cookies dieselben sind, überprüfen Sie den Zugriff auf den Remoteanzeigeport mit der IP-Adresse des Linux VDA und der Anzeigenummer des veröffentlichten Desktops.
Führen Sie zum Beispiel den folgenden Befehl auf der XClient-Maschine aus:
telnet 10.158.11.11 6160 <!--NeedCopy-->Die Portnummer ist die Summe aus 6000 + <display number>.
Wenn dieser Telnet-Vorgang fehlschlägt, wird die Anfrage möglicherweise von der Firewall blockiert.