除非我使用 xhost +localhost,否则使用 xforwarding 的应用程序将失败

除非我使用 xhost +localhost,否则使用 xforwarding 的应用程序将失败

我通过 nomachine enterprise 连接到远程系统。我们使用一个内部应用程序,我认为它在我运行它时本质上是从另一台机器 xforwarded 的 - 它在那里运行,并以图形方式向我输出信息。

当我们尝试运行它时,我们收到错误

xNo protocol specified
Jul 06 03:47:03 FATAL   Tk init failure: couldn't connect to display ":1004.0"

运行xhosts +localhost让我运行该应用程序,但是有帖子含糊其辞地说这很危险

什么是正确的可以这样吗?

我们运行的是 centos 6.5、gnome 2.28.2 和 nomachine enterprise。我以普通用户身份运行,应用程序在本地运行良好。

答案1

通常,当您以未经授权的 X 服务器用户身份登录时,会出现此消息。例如,当有人尝试执行 时,可能会发生这种情况su

在这些情况下,正确的做法是访问.XauthorityX 服务器的真实用户的文件。例如,在我的笔记本电脑上,为了在我成为 时允许访问 X 服务器su,我创建了一个指向 的符号/root/.Xauthority链接/home/myname/.Xauthority

正常程序是将 MIT magic cookie(包含.Xauthority在不适合文本显示的格式中)显示为

   $ xauth list $DISPLAY
    rasal/unix:0  MIT-MAGIC-COOKIE-1  fdc693bdad69a20665771a695cdde589

然后,以新授权用户的身份发出以下命令:

   $  xauth add rasal/unix:0  MIT-MAGIC-COOKIE-1  fdc693bdad69a20665771a695cdde589

该问题最常发生在 Debian 及其衍生产品上,因为这里XAUTHORITY没有设置环境变量。你一定要尝试设置它,

   export XAUTHORITY=~/.Xauthority

。但是,如果涉及其他用户(我从未运行过 NoMachine,但许多 Nix 应用程序都会创建特别指定用户)您可能希望使它对所有用户永久有效:然后您可以编辑/etc/profile/etc/environment。但请记住将其指向现有用户的 MIT magic cookie 文件!

相关内容