X11 通过 ssh 转发 - 在 DISPLAY: 1 中找不到“:”

X11 通过 ssh 转发 - 在 DISPLAY: 1 中找不到“:”

我正在尝试从我的 mac(安装了 Xquartz)连接到 ubuntu 服务器。我使用-Yssh 选项。当我通过 ssh 连接到服务器并运行任何图形应用程序(例如 xclock)时,我收到以下错误

$xclock
Could not find ':' in DISPLAY: 1
Error: Can't open display: localhost:10.0

在 sshd_config 中设置 X11 转发

$ grep -i X11Forward /etc/ssh/sshd_config
# Setting X11Forwarding to "yes" permits encrypted X connections.
X11Forwarding yes

和,

$ echo $DISPLAY
localhost:10.0

有人能在这方面帮助我吗?

答案1

我在这里给出一个通用答案,因为其他人可能很难在 Mac 上设置 X 转发。我认为在您的具体情况下,请尝试从 XQuarts 运行 ssh,而不是从终端运行它。还要确保您已在服务器调整完成后重启sshd。

在 OS-X 上运行 X 应用程序的先决条件:

  • 你需要石英安装在客户端(通过运行 XQuarts 并启动本地终端来检查它是否适用于你的帐户)
  • 您需要在服务器上允许 XForwarding。设置 X11Forwarding 选项(最常见于/etc/ssh/sshd_config):(X11Forwarding yes编辑 sshd_config 文件后,请不要忘记重新启动 ssh 服务器)。
  • 您的 sshd 服务器应该在服务器端运行。
  • 您的防火墙(两端)应允许通过端口 22 进行通信。

通过 ssh 运行 X:

  1. 通过启动 XQuartz 并按+来启动 XQuartz 终端n
  2. 在终端输入:(ssh -X [username]@[servername]您也可以使用-Y代替-X
  3. 您应该已登录到您的服务器。xeyes例如,尝试让 X 回头看看您。

故障排除:

  • “连接被拒绝”:检查您的防火墙设置(两端),并检查 ssh 服务器(sshd)是否在接收端运行。
  • $DISPLAY 错误:ssh 应该负责设置 $DISPLAY 变量。如果您从 XQuartz 运行,这意味着(出于某种原因)ssh 无法设置 Xforwarded 会话。检查日志文件中的任何错误(特别是在服务器端),并尝试使用详细输出-v或甚至-vv或的 ssh-vvv来寻找线索)。不要自己篡改 $DISPLAY 设置,因为它是影响ssh 无法建立隧道,而不是原因

相关内容