Linux Virtual Delivery Agent

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 .Xauthority befindet 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 übergeben

    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 setzen. 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 gesetzt ist, wird standardmäßig die Datei ~/.Xauthority verwendet.

  • Die .Xauthority-Datei an XClient übergeben, indem ein freigegebenes Home-Verzeichnis gemountet wird

    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 gesetzt sind, wird die GUI automatisch auf dem XServer-Desktop angezeigt.

Fehlerbehebung

Wenn Xauthority nicht funktioniert, befolgen Sie die folgenden Schritte zur Fehlerbehebung:

  1. 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-->
    
  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 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.

Xauthority konfigurieren