Linux虚拟交付代理

配置Xauthority

Linux VDA支持使用X11显示功能的环境(包括xterm而且gvim)进行互动遥控。此特性提供了确保XClient和XServer之间安全通信所必需的安全机制。

有两种方法来保护这个安全通信的权限:

  • Xhost.默认情况下,Xhost只允许本地主机XClient与XServer通信。如果选择允许远程XClient访问XServer,则必须运行Xhost命令在特定的计算机上授予权限。或者,你可以交替使用xhost +允许任何XClient连接到XServer。
  • Xauthority.的.Xauthority文件可以在每个用户的主目录中找到。它用于将凭据存储在xauth用于XServer身份验证的cookie中。当XServer实例(Xorg)启动时,cookie用于验证到特定显示的连接。

它是如何工作的

当Xorg启动时,一个.Xauthority文件被传递到Xorg。这.Xauthority文件包含以下元素:

  • 显示数量
  • 远程请求协议
  • 饼干数量

方法浏览此文件xauth命令。例如:

# xauth -f ~/。Xauthority# > list # > us01msip06:107 MIT-MAGIC-COOKIE-1 fb228d1b695729242616c5908f11624b 

如果XClient远程连接到Xorg,必须满足两个先决条件:

  • 设置显示环境变量到远程XServer。
  • 得到了.Xauthority该文件包含Xorg中的一个cookie编号。

配置Xauthority

要在Linux VDA上启用Xauthority用于远程X11显示,必须创建以下两个注册表项:

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 

启用Xauthority后,传递.Xauthority手动或通过挂载共享主目录将文件挂载到XClient:

  • 通过.Xauthority文件手动到XClient

    在启动ICA会话之后,Linux VDA生成.Xauthority文件,并将该文件存储在登录用户的主目录中。你可以复制这个.Xauthority文件到远程XClient机器,并设置显示而且XAUTHORITY环境变量。显示显示号是否存储在.Xauthority文件和XAUTHORITY为Xauthority的文件路径。例如,命令如下:

    export DISPLAY={Xauthority文件中存储的显示号}export Xauthority ={.Xauthority的文件路径}

    注意:

    如果XAUTHORITY环境变量未设置~ /。Xauthority默认使用文件。

  • 通过.Xauthority通过挂载共享主目录将文件挂载到XClient

    方便的方法是为登录用户挂载共享的主目录。当Linux VDA启动ICA会话时,会触发.Xauthority在登录用户的主目录下创建文件。如果这个主目录与XClient共享,用户就不需要传输它.Xauthority文件手动到XClient。后显示而且XAUTHORITY环境变量设置正确后,图形界面自动显示在XServer桌面中。

故障排除

如果Xauthority无法正常工作,请按照故障排除步骤进行处理:

  1. 作为具有root权限的管理员,检索所有Xorg cookie:

    Ps aux | grep -i xorg 

    这个命令显示Xorg进程和启动时传递给Xorg的参数。另一个参数显示.Xauthority文件被使用。例如:

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

    控件显示cookieXauth命令:

    Xauth -f /var/xdl/ Xauth /。Xauthority110 < !——NeedCopy >
  2. 使用Xauth中包含的cookie~ /。Xauthority.对于相同的显示号,显示的cookie必须是相同的.XauthorityXorg和XClient文件。

  3. 如果cookie相同,请使用Linux VDA的IP地址(例如10.158.11.11)和发布的桌面显示号(例如160)来检查远程显示端口的可访问性。

    在XClient机器上执行以下命令:

    Telnet 10.158.11.11 6160 

    端口号为6000 + <显示号>的和。

    如果此telnet操作失败,则防火墙可能正在阻止该请求。

配置Xauthority