ssh -X“Xt 错误:无法打开显示::0.0”

ssh -X“Xt 错误:无法打开显示::0.0”

我正在尝试使用xtermssh 在我的远程服务器(Ubuntu Server 10.04)上打开:

ssh -X name@machine xterm

但返回的错误是:

xterm Xt error: Can't open display: :0.0`

我搜索并尝试了所有找到的方法。仍然出现此错误。DISPLAY 变量应该自动设置,对吗?

部分sshd_config

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes

有什么建议吗?

答案1

如果 ssh 能够建立连接,它将设置DISPLAY为正确的值。由于您已将其X11DisplayOffset设置为 10(默认值),ssh 将使用从 10 开始的第一个可用显示器。如果您看到的值低于 10¹,则某些东西正在干扰 ssh 设置的正常 X11 转发,至少会通过覆盖 来干扰DISPLAY。该值:0(或:0.0,点后的部分无关紧要)表示在计算机上启动的第一个显示器,通常情况下是计算机控制台上的活动会话(或图形登录提示)。

对于您观察到的行为,最可能的解释是您的某个 shell 配置文件设置了DISPLAY。最明显的罪魁祸首是~/.bashrc(由于 bash 的怪癖,只要 bash 的父级是rshdsshd,就会执行 ,即使 shell 不是交互式的)。另一个定义环境变量的文件是/etc/environment。如果是这种情况,解决方案很明显:不要DISPLAY在那里设置。 (很少有需要DISPLAY手动设置的情况。)

还有其他奇怪的解释。如果您将登录 shell 更改为screen(理论上是个不错的想法,但不切实际),并且您有一个强制设置DISPLAY内部屏幕的 shell 初始化文件(不是一个好主意),则可能会发生这种情况。如果您将服务器配置为接受客户端发送的环境变量(AcceptEnv中的指令sshd_config),客户端正在发送,并且无法建立 X 连接,也可能会发生这种情况。或者,如果您通过中的指令DISPLAY在服务器上设置环境变量,也可能发生这种情况。或者可能是脚本。command~/.ssh/authorized_keysxterm

¹或者服务器配置中的任何值X11DisplayOffset,但它几乎从未改变默认值。

答案2

您的命令应该有效,至少对我来说有效。请尝试以下操作:

ssh -Y user@machine xterm

编辑(1):

尝试这个:

ssh -X user@machine env

这应该会显示所有环境。其中应该有各种 SSH 内容,还有 DISPLAY。DISPLAY 应该是 10.0。

你也可以尝试这个:

ssh -X user@machine DISPLAY=10.0 xterm

答案3

此外X11Forwarding yes,我还需要添加

X11UseLocalhost no

/etc/ssh/sshd_config

如所述这里

答案4

我发现xauth没有被安装。

相关内容