Xauthority
El VDA de Linux admite 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.
-
Existen dos métodos para asegurar el permiso para esta comunicación segura:
- Xhost. Por defecto, Xhost permite que solo el XClient local (localhost) se comunique con el XServer. Si decides permitir que un XClient remoto acceda al XServer, debes ejecutar el comando Xhost para conceder permiso en la máquina específica. O, alternativamente, puedes usar xhost + para permitir que cualquier XClient se conecte al XServer.
-
Xauthority. El archivo
.Xauthorityse encuentra en el directorio de inicio de cada usuario. Se utiliza para almacenar credenciales en cookies usadas por xauth para la autenticación del XServer. Cuando se inicia una instancia de XServer (Xorg), la cookie se utiliza para autenticar las conexiones a esa visualización específica. -
Cómo funciona
Cuando Xorg se inicia, se pasa un archivo .Xauthority al 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 usando el comando
xauth. Por ejemplo:
# xauth -f ~/.Xauthority
# > list
# > us01msip06:107 MIT-MAGIC-COOKIE-1 fb228d1b695729242616c5908f11624b
<!--NeedCopy-->
Si XClient se conecta al Xorg de forma remota, deben cumplirse dos requisitos previos:
- Configura la variable de entorno DISPLAY al XServer remoto.
- Obtén el archivo
.Xauthorityque 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 siguientes 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, pasa el archivo .Xauthority al XClient manualmente o montando un directorio de inicio compartido:
-
Pasa el archivo
.Xauthorityal XClient manualmenteDespués de iniciar una sesión ICA®, el VDA de Linux genera el archivo
.Xauthoritypara el XClient y almacena el archivo en el directorio de inicio del usuario que ha iniciado sesión. Puedes copiar este archivo.Xauthoritya la máquina XClient remota y configurar las variables de entorno DISPLAY y XAUTHORITY.DISPLAYes el número de visualización almacenado en el archivo.XauthorityyXAUTHORITYes 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á configurada, se utiliza el archivo
~/.Xauthoritypor defecto. -
Pasa el archivo
.Xauthorityal XClient montando un directorio de inicio compartidoLa 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 ICA, se crea el archivo
.Xauthorityen 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.Xauthorityal XClient manualmente. Una vez que las variables de entorno DISPLAY y XAUTHORITY se configuran correctamente, la GUI se muestra automáticamente en el escritorio del XServer.
Solución de problemas
Si Xauthority no funciona, sigue los pasos de solución de problemas:
-
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 durante el inicio. Otro parámetro muestra qué archivo
.Xauthorityse utiliza. Por ejemplo:/var/xdl/xauth/.Xauthority110 <!--NeedCopy-->Muestra las cookies usando el comando Xauth:
Xauth -f /var/xdl/xauth/.Xauthority110 <!--NeedCopy--> -
Usa el comando
Xauthpara mostrar las cookies contenidas en~/.Xauthority. Para el mismo número de visualización, las cookies mostradas deben ser las mismas en los archivos.Xauthorityde Xorg y XClient. -
Si las cookies son las mismas, verifica la accesibilidad del puerto de visualización remoto usando la dirección IP del VDA de Linux y el número de visualización del escritorio publicado.
Por ejemplo, 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, el firewall podría estar bloqueando la solicitud.