Configurar Xauthority

Los entornos que usan la comunicación remota interactiva con la funcionalidad de pantalla X11 (incluidos xterm y gvim) reciben respaldo en Linux VDA. Esta característica proporciona un mecanismo de seguridad necesario para proteger la comunicación entre XClient y XServer.

Existen dos métodos para garantizar este permiso para la comunicación segura:

  • Xhost. De forma predeterminada, Xhost solo permite al XClient de localhost la comunicación con XServer. Si elige permitir el acceso a XServer a un XClient remoto, el comando Xhost tiene que ser ejecutado para conceder permiso a esa máquina concreta. O bien, puede usar xhost + para permitir que cualquier XClient se conecte a XServer.
  • Xauthority. El archivo .Xauthority se encuentra en el directorio principal de cada usuario. Se usa para almacenar credenciales en las cookies utilizadas por xauth para la autenticación de XServer. Una vez que una instancia de XServer (Xorg) se ha iniciado, la cookie se usa para autenticar las conexiones específicas a esa pantalla concreta.

Funcionamiento

Cuando se inicia Xorg, se 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

Puede examinar este archivo usando el comando xauth. Por ejemplo:

# xauth -f ~/.Xauthority

# > list

# > us01msip06:107  MIT-MAGIC-COOKIE-1  fb228d1b695729242616c5908f11624b

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

  • Definir la variable de entorno DISPLAY con el valor del XServer remoto.
  • Obtener el archivo .Xauthority que contiene uno de los números de cookie en Xorg.

Configurar Xauthority

Para habilitar Xauthority en Linux VDA para la pantalla X11 remota, deben crearse dos claves de Registro:

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

Después de habilitar Xauthority, pase el archivo .Xauthority a XClient manualmente o mediante el montaje de un directorio particular (home) compartido:

  • Pasar el archivo .Xauthority a XClient manualmente

    Después de iniciar una sesión ICA, el Linux VDA genera el archivo .Xauthority para el XClient y almacena el archivo en el directorio home del usuario de inicio de sesión. Puede copiar este archivo .Xauthority a la máquina del XClient remoto 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. Por ejemplo, fíjese en el comando siguiente:

     export DISPLAY={Display number stored in the Xauthority file}
    
     export XAUTHORITY={the file path of .Xauthority}
    

    Nota:

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

  • Pasar el archivo .Xauthority a XClient montando un directorio particular (home) compartido

    El método más cómodo es montar un directorio home compartido para el usuario que inicia la sesión. Cuando el Linux VDA inicia una sesión ICA, se crea el archivo .Xauthority en el directorio home del usuario de inicio de sesión. Si el directorio home está compartido con XClient, el usuario no necesita transmitir este archivo .Xauthority manualmente a XClient. Una vez configuradas correctamente las variables de entorno DISPLAY y XAUTHORITY, la interfaz gráfica de usuario se muestra en el escritorio de XServer automáticamente.

Solución de problemas

Si Xauthority no funciona, siga los pasos indicados a continuación:

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

    ps aux | grep -i xorg
    

    Este comando muestra el proceso Xorg y los parámetros pasados a Xorg al iniciar. Otro parámetro muestra qué archivo .Xauthority se utiliza. Por ejemplo:

    /var/xdl/xauth/.Xauthority110
    

    Muestre las cookies mediante el comando Xauth:

    Xauth -f /var/xdl/xauth/.Xauthority110
    
  2. Use el comando Xauth para mostrar las cookies contenidas en ~/.Xauthority. Para el mismo número de pantalla, las cookies que se muestran deben ser las mismas en los archivos .Xauthority de Xorg y de XClient.

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

    Ejecute el siguiente comando en la máquina XClient:

    telnet 10.158.11.11 6160
    

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

    Si se produce un error en la operación de Telnet, el firewall puede estar bloqueando la solicitud.

Configurar Xauthority