Agente de entrega virtual de Linux 2201

Configurar Xauthority

El VDA de Linux es compatible con entornos que usan la funcionalidad de visualización X11 (incluidos xterm y gvim) para el acceso remoto interactivo. Esta función proporciona un mecanismo de seguridad necesario para garantizar una comunicación segura entre XClient y XServer.

  • Hay dos métodos para proteger el permiso de esta comunicación segura:

  • Xhost. De forma predeterminada, Xhost solo permite que el XClient de localhost se comunique con XServer. Si eliges permitir que un XClient remoto acceda a XServer, debes ejecutar el comando Xhost para conceder permiso en la máquina específica. O bien, puedes usar xhost + para permitir que cualquier XClient se conecte a XServer.
  • Xauthority. El archivo .Xauthority se encuentra en el directorio de inicio de cada usuario. Se usa para almacenar credenciales en cookies que xauth utiliza para la autenticación de XServer. Cuando se inicia una instancia de XServer (Xorg), la cookie se usa para autenticar las conexiones a esa visualización específica.

  • Cómo funciona

Cuando Xorg se inicia, se pasa un archivo .Xauthority a Xorg. Este archivo .Xauthority contiene los siguientes elementos:

  • Número de visualización
  • Protocolo de solicitud remota
  • Número de cookie

  • Puedes explorar este archivo mediante el comando xauth. Por ejemplo:
# xauth -f ~/.Xauthority

# > list

# > us01msip06:107  MIT-MAGIC-COOKIE-1  fb228d1b695729242616c5908f11624b
<!--NeedCopy-->

Si XClient se conecta a Xorg de forma remota, deben cumplirse dos requisitos previos:

  • Establece la variable de entorno DISPLAY en el XServer remoto.
  • Obtén el archivo .Xauthority que contiene uno de los números de cookie en Xorg.

Configurar Xauthority

Para habilitar Xauthority en el VDA de Linux para la visualización remota X11, debes crear las dos claves de registro siguientes:

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

Después de habilitar Xauthority, pasa el archivo .Xauthority al XClient manualmente o montando un directorio de inicio compartido:

  • Pasa el archivo .Xauthority al XClient manualmente

    Después de iniciar una sesión de ICA®, el VDA de Linux genera el archivo .Xauthority para el XClient y almacena el archivo en el directorio de inicio del usuario que ha iniciado sesión. Puedes copiar este archivo .Xauthority en la máquina XClient remota y establecer las variables de entorno DISPLAY y XAUTHORITY. DISPLAY es el número de visualización almacenado en el archivo .Xauthority y XAUTHORITY es la ruta de archivo de Xauthority. Para ver un ejemplo, consulta el siguiente comando:

     export DISPLAY={Display number stored in the Xauthority file}
    
     export XAUTHORITY={the file path of .Xauthority}
     <!--NeedCopy-->
    

    Nota:

    Si la variable de entorno XAUTHORITY no está establecida, el archivo ~/.Xauthority se usa de forma predeterminada.

  • Pasa el archivo .Xauthority al XClient montando un directorio de inicio compartido

    La forma más cómoda es montar un directorio de inicio compartido para el usuario que ha iniciado sesión. Cuando el VDA de Linux inicia una sesión de ICA, el archivo .Xauthority se crea en el directorio de inicio del usuario que ha iniciado sesión. Si este directorio de inicio se comparte con el XClient, el usuario no necesita transmitir este archivo .Xauthority al XClient manualmente. Una vez que las variables de entorno DISPLAY y XAUTHORITY se establecen correctamente, la GUI se muestra automáticamente en el escritorio de XServer.

Solución de problemas

Si Xauthority no funciona, sigue los pasos de solución de problemas:

  1. Como administrador con privilegios de root, recupera todas las cookies de Xorg:

    ps aux | grep -i xorg
    <!--NeedCopy-->
    

    Este comando muestra el proceso de Xorg y los parámetros pasados a Xorg durante el inicio. Otro parámetro muestra qué archivo .Xauthority se usa. Por ejemplo:

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

    Muestra las cookies mediante el comando Xauth:

    Xauth -f /var/xdl/xauth/.Xauthority110
    <!--NeedCopy-->
    
  2. Usa el comando Xauth para mostrar las cookies contenidas en ~/.Xauthority. Para el mismo número de visualización, las cookies mostradas deben ser las mismas en los archivos .Xauthority de Xorg y XClient.

  3. Si las cookies son las mismas, comprueba la accesibilidad del puerto de visualización remoto usando la dirección IP del VDA de Linux (por ejemplo, 10.158.11.11) y el número de visualización del escritorio publicado (por ejemplo, 160).

    Ejecuta el siguiente comando en la máquina XClient:

    telnet 10.158.11.11 6160
    <!--NeedCopy-->
    

    El número de puerto es la suma de 6000 + <número de visualización>.

    Si esta operación de telnet falla, es posible que el firewall esté bloqueando la solicitud.

Configurar Xauthority