我正在尝试在客户端-服务器模式下运行应用程序(ParaView),其图形渲染在远程(服务器)端完成。我使用 SSH 作为连接到服务器的方式,但不希望使用 X 转发,因为它会减慢渲染过程。
但是,每次我尝试在服务器显示屏上打开应用程序时,都会收到这样的错误:
Invalid MIT-MAGIC-COOKIE-1 keyError: cannot open display ':0'
我对这个问题进行了广泛的研究,并且已经尝试了以下建议的程序但无济于事:
- 使用“xauth list”获取本地主机显示的 MIT-MAGIC-COOKIE-1 值。
- 通过 ssh 登录远程主机。
- 在远程主机上使用“export DISPLAY=:0”。
- 在远程主机上,使用“xauth add”将远程主机显示的 cookie 值覆盖为本地主机的 cookie 值。
我确信这是正确的过程,但我只是没有将正确的 cookie 传输到正确的显示器。
同样,我希望能够使用 ssh 来打开远程计算机显示屏上的应用程序。理想情况下,我希望整个过程通过 xauth 而不是 xhost 完成,并且我再次不需要使用 X 转发。我可能遗漏了什么或做错了什么?
答案1
尝试
xhost +local:
在运行之前。
答案2
这对我有用。所以我把这个答案留在这里。
export DISPLAY=:1.0
答案3
您使用的值DISPLAY
不正确:如果您不想使用 SSH X 转发,则DISPLAY
必须指示您的 X 服务器(您想要在其上显示程序的桌面)的 IP 地址。在遥控器上,运行
export DISPLAY=desktop:0
替换desktop
为您的本地主机名或 IP 地址。您可能还需要更改 X 服务器的配置以允许远程 IP 连接。
答案4
对我来说,错误是:
Invalid MIT-MAGIC-COOKIE-1 keyxcb_connection_has_error() returned true
Invalid MIT-MAGIC-COOKIE-1 keyERROR: Unable to create GUI. Exiting
我玩过 .Xauthority 但它什么也没做,只是隐藏了“MIT cookie”部分,而不是 xcb_connection 错误。最后仅通过使用 @PSN 答案 ( export DISPLAY=:1.0
) 就可以了。
fwiw我在debian 9上。