X11在ssh上转发 - 在DISPLAY中找不到':':1


3

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

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

X11转发在sshd_config中设置

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

和,

$ echo $DISPLAY
localhost:10.0

有人可以在这方面帮助我。

Answers:


3

我会在这里给出一个通用的答案,因为其他人可能正在努力在Mac上设置X转发。我想在你的具体情况下,尝试从XQuarts运行ssh而不是从终端运行它。还要确保在服务器端设置了XForwarding,并在调整后重新启动sshd。

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

  • 您需要在客户端安装XQuartz(通过运行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会话。检查日志文件中的任何错误(特别是在服务器端)并尝试ssh与详细输出-v甚至-vv-vvv寻找线索)。不要用$显示设置自己乱动,因为它的效果不能够建立隧道,而不是SSH 的原因

谢谢 !在我的情况下,我没有注销并登录以使X生效并因此失败。
psteelk 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.