尝试远程运行程序时出现“无效的 MIT-MAGIC-COOKIE-1 密钥”

CS6*_*394 40 ssh remote xauth

我试图在客户端 - 服务器模式下运行应用程序(ParaView),其图形渲染在远程(服务器)端完成。我使用 SSH 作为连接服务器的方式,但不希望使用 X-forwarding,因为它会减慢渲染过程。

但是,每次我尝试在服务器的显示器上打开应用程序时,都会出现以下错误:

Invalid MIT-MAGIC-COOKIE-1 keyError: cannot open display ':0'
Run Code Online (Sandbox Code Playgroud)

我对此事进行了广泛的研究,并且已经尝试了以下建议的程序,但无济于事:

  1. 使用“xauth list”获取本地主机显示的 MIT-MAGIC-COOKIE-1 值。
  2. 通过 ssh 登录到远程主机。
  3. 在远程主机上使用“export DISPLAY=:0”。
  4. 在远程主机上,使用“xauth add”将远程主机显示的 cookie 值覆盖为本地主机的 cookie 值。

我确信这是正确的程序,但我只是没有将正确的 cookie 传输到正确的显示器。

同样,我希望能够使用 ssh 在远程计算机的显示器上打开应用程序。理想情况下,我希望整个过程通过 xauth 而不是 xhost 来完成,并且再次重申,我不需要使用 X-forwarding。我可能遗漏了什么或做错了什么?

小智 19

尝试

xhost +local: 
Run Code Online (Sandbox Code Playgroud)

在运行它之前。

  • `$ DISPLAY=:0 xhost +local:` 给出 `无效的 MIT-MAGIC-COOKIE-1 密钥` (7认同)
  • 命令有什么作用? (3认同)
  • 它做到了。谢谢,我认为这是最短的答案! (2认同)
  • $ xhost +local: xhost: 无法打开显示“桌面:0” (2认同)
  • @Moberg:它禁用身份验证控制。它允许任何用户在显示器上打开图形窗口。所以这不是你想要一直做的事情!但是,当您知道想要以其他用户身份运行某些图形应用程序时,这就是您需要做的。 (2认同)

Ste*_*itt 16

您使用的值DISPLAY不正确:如果您不想使用 SSH X 转发,则DISPLAY必须指明您的 X 服务器(您要在其上显示程序的桌面)的 IP 地址。在遥控器上,运行

export DISPLAY=desktop:0
Run Code Online (Sandbox Code Playgroud)

替换desktop为您的本地主机名或 IP 地址。您可能还需要更改 X 服务器的配置以允许远程 IP 连接。

  • 这会忽略 XAUTHORITY 问题,这是导致主题行中出现实际错误消息的原因。 (3认同)

PSN*_*PSN 9

这个对我有用。所以我把这个答案留在这里。

 export DISPLAY=:1.0
Run Code Online (Sandbox Code Playgroud)

  • :1.0 实际上是一个缩写,意思是“在本地主机上显示 1”。显示变量的格式为[host]:<display>[.screen]。host 指网络主机名,如果不存在则表示通过 unix 域套接字连接到本地计算机。每个主机可以有多个显示器,每个显示器可以有多个屏幕。屏幕不再使用太多,xinerama 和现在的 xrandr 将多个屏幕组合成一个逻辑屏幕。来源:https://unix.stackexchange.com/a/16816 (5认同)