配置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无法正常工作,请按照故障排除步骤进行处理:
作为具有root权限的管理员,检索所有Xorg cookie:
Ps aux | grep -i xorg
这个命令显示Xorg进程和启动时传递给Xorg的参数。另一个参数显示
.Xauthority
文件被使用。例如:/var/xdl/xauth/.Xauthority110 < !——NeedCopy >
控件显示cookieXauth命令:
Xauth -f /var/xdl/ Xauth /。Xauthority110 < !——NeedCopy >
使用
Xauth
中包含的cookie~ /。Xauthority
.对于相同的显示号,显示的cookie必须是相同的.Xauthority
Xorg和XClient文件。如果cookie相同,请使用Linux VDA的IP地址(例如10.158.11.11)和发布的桌面显示号(例如160)来检查远程显示端口的可访问性。
在XClient机器上执行以下命令:
Telnet 10.158.11.11 6160
端口号为6000 + <显示号>的和。
如果此telnet操作失败,则防火墙可能正在阻止该请求。