Configurar Xauthority
Linux VDA admite los entornos que utilizan la funcionalidad de pantalla X11 (incluidos xterm
y gvim
) para la comunicación remota interactiva. Esta función 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 mediante el comando xauth. Por ejemplo:
# xauth -f ~/.Xauthority
# > list
# > us01msip06:107 MIT-MAGIC-COOKIE-1 fb228d1b695729242616c5908f11624b
<!--NeedCopy-->
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
<!--NeedCopy-->
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 manualmenteDespué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
en 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} <!--NeedCopy-->
Nota:
Si la variable de entorno XAUTHORITY no está definida, se usa el archivo
~/.Xauthority
de forma predeterminada. -
Pasar el archivo
.Xauthority
a XClient con el montaje de un directorio particular (home) compartidoEl 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 particular 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:
-
Como administrador con privilegios raíz, obtenga 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 iniciar. Otro parámetro muestra qué archivo
.Xauthority
se utiliza. Por ejemplo:/var/xdl/xauth/.Xauthority110 <!--NeedCopy-->
Muestre las cookies mediante el comando Xauth:
Xauth -f /var/xdl/xauth/.Xauthority110 <!--NeedCopy-->
-
Utilice 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. -
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 <!--NeedCopy-->
El número de puerto es la suma de 6000 + \<número de pantalla\>.
Si se produce un error en la operación de Telnet, el firewall puede estar bloqueando la solicitud.