我通过 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
。
在这些情况下,正确的做法是访问.Xauthority
X 服务器的真实用户的文件。例如,在我的笔记本电脑上,为了在我成为 时允许访问 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 文件!