Agente de entrega virtual de Linux 2112

Configurar Xauthority

El VDA de Linux es compatible con entornos que usan la funcionalidad de pantalla X11 (incluidos xterm y gvim) para la conexión remota interactiva. Esta función proporciona un mecanismo de seguridad necesario para garantizar una comunicación segura entre el cliente X y el servidor X.

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

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

  • Cómo funciona

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

  • Número de pantalla
  • Protocolo de solicitud remota
  • Número de cookie

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

# > list

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

Si el cliente X se conecta a Xorg de forma remota, se deben cumplir dos requisitos previos:

  • Establecer la variable de entorno DISPLAY en el servidor X remoto.
  • Obtener 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 de 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 cliente X manualmente o montando un directorio personal compartido:

  • Pasar el archivo .Xauthority al cliente X manualmente

    Después de iniciar una sesión ICA®, el VDA de Linux genera el archivo .Xauthority para el cliente X y lo almacena en el directorio personal del usuario de inicio de sesión. Puedes copiar este archivo .Xauthority a la máquina cliente X remota y establecer las variables de entorno DISPLAY y XAUTHORITY. DISPLAY es el número de pantalla 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, se utiliza el archivo ~/.Xauthority de forma predeterminada.

  • Pasar el archivo .Xauthority al cliente X montando un directorio personal compartido

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

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 Xorg y los parámetros pasados a Xorg al iniciarse. Otro parámetro muestra qué archivo .Xauthority se utiliza. Por ejemplo:

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

    Muestra las cookies usando 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 pantalla, las cookies mostradas deben ser las mismas en los archivos .Xauthority de Xorg y del cliente X.

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

    Ejecuta el siguiente comando en la máquina cliente X:

    telnet 10.158.11.11 6160
    <!--NeedCopy-->
    

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

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

Configurar Xauthority