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 lokalen XClient, mit dem XServer zu kommunizieren. Wenn Sie einem Remote-XClient den Zugriff auf den XServer gestatten 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 ermöglichen.
  • Xauthority. Die Datei .Xauthority 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 zur Authentifizierung von Verbindungen zu dieser spezifischen Anzeige verwendet.

  • Funktionsweise

Wenn Xorg startet, wird eine .Xauthority-Datei an Xorg übergeben. Diese .Xauthority-Datei enthält die folgenden Elemente:

  • Anzeigenummer
  • Remote-Anforderungsprotokoll
  • 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 remote eine Verbindung zu Xorg herstellt, 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 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-->

Nachdem Sie Xauthority aktiviert haben, übergeben Sie die .Xauthority-Datei manuell an XClient oder indem Sie ein freigegebenes Home-Verzeichnis mounten:

  • Übergeben Sie die .Xauthority-Datei manuell an XClient

    Nach 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 Umgebungsvariablen DISPLAY und XAUTHORITY festlegen. DISPLAY ist die in der .Xauthority-Datei gespeicherte Anzeigenummer und XAUTHORITY ist 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 ~/.Xauthority verwendet.

  • Übergeben Sie die .Xauthority-Datei an XClient, indem Sie ein freigegebenes Home-Verzeichnis mounten

    Der 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 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:

  1. Rufen Sie als Administrator mit Root-Berechtigung 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. Beispiel:

    /var/xdl/xauth/.Xauthority110
    <!--NeedCopy-->
    

    Zeigen Sie die Cookies mit dem Befehl Xauth an:

    Xauth -f /var/xdl/xauth/.Xauthority110
    <!--NeedCopy-->
    
  2. Verwenden Sie den Befehl Xauth, um die in ~/.Xauthority enthaltenen Cookies anzuzeigen. Für dieselbe Anzeigenummer müssen die angezeigten Cookies in den .Xauthority-Dateien von Xorg und XClient identisch sein.

  3. Wenn die Cookies identisch sind, überprüfen Sie die Erreichbarkeit des Remote-Anzeigeports, indem Sie die IP-Adresse des Linux VDA (z. B. 10.158.11.11) und die Anzeigenummer des veröffentlichten Desktops (z. B. 160) verwenden.

    Führen Sie den folgenden Befehl auf der XClient-Maschine aus:

    telnet 10.158.11.11 6160
    <!--NeedCopy-->
    

    Die Portnummer ist die Summe aus 6000 + <Anzeigenummer>.

    Wenn dieser Telnet-Vorgang fehlschlägt, blockiert möglicherweise die Firewall die Anforderung.

Xauthority konfigurieren