如何在不使用 SSH 的情况下在远程主机上显示 xeyes?

如何在不使用 SSH 的情况下在远程主机上显示 xeyes?

我在两台机器上运行 X - astra (slackware 15) 和 nebula (macos mojave)。我想在 astra 本地运行 xeyes,并将其显示在 nebula 上。我对各种文档的理解是我应该能够运行:

xeyes -display nebula:X.Y

来自 astra,其中 X 是星云上的显示索引,Y 是屏幕编号。

我尝试了很多X和Y的组合,没有X或Y等等都没有效果。我不断收到错误消息:

错误:无法打开显示:nebula:XY

我能够在本地使用以下命令显示在远程计算机上运行的 X 程序:

ssh -Y host

没有问题,但这不是我要解决的问题。我希望能够在本地运行我的本地客户端,并让显示远程显示,如上所述并由 Xorg 服务器支持。

过去的工作方式和现在的工作方式可能有所不同,我找到的文档较旧。

答案1

要在 nebula 上显示,来自 astra 的 MacOS Mojave 计算机、Slackware 15 计算机需要执行几个步骤:

  1. 在 XQuartz 首选项中 - 安全 -> 允许来自网络客户端的连接。
  2. 重新启动 XQuartz
  3. 从星云获取 MIT-MAGIC-COOKIE-1
  4. 将其添加到 astra 的 xauth 列表中
  5. 从 astra 运行客户端,它将显示在 nebula 的屏幕上

详细信息如下:

要查看 X 是如何启动的,请运行ps aux | grep X

user            96691   0.0  0.0  4279568   5012   ??  S    12:39PM   0:00.01 /opt/X11/bin/Xquartz :0 -nolisten tcp -iglx -auth /Users/user/.serverauth.96532

需要注意的关键点是-nolisten tcp-auth。这些分别表明 X 服务器未侦听 TCP,并且与 X 服务器的连接需要身份验证。

更改 XQuartz 中的首选项以允许网络连接并重新启动它会导致以下更改:

user            97993   0.0  0.0  4279568   5004   ??  S     2:08PM   0:00.01 /opt/X11/bin/Xquartz :0 -listen tcp -iglx -auth /Users/user/.serverauth.97835

现在,XQuartz 正在监听 TCP,如下所示-listen tcp

要从星云、在星云上或通过远程登录获取魔法身份验证 cookie,请运行xauth list并找到正确的 cookie:

nebula:0  MIT-MAGIC-COOKIE-1  240800a1f435f70d92f8f8c706eeb547

在 astra 上,使用以下命令将 cookie 添加到 xauth 列表:

xauth add nebula:0 . 240800a1f435f70d92f8f8c706eeb547

如果一切顺利,您现在应该能够从 astra 运行 xeyes:

xeyes -display nebula:0

眼睛

需要注意的事项:

  1. XQuartz 需要运行:)
  2. cookie 需要是最新的。它会改变。
  3. 命令中有一个点是xauth add必需的。

相关内容