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

Fab*_*ian 10 ssh xorg xterm x11

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

ssh -X name@machine xterm
Run Code Online (Sandbox Code Playgroud)

但返回的错误是:

xterm Xt error: Can't open display: :0.0`
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索并尝试了我发现的一切。仍然收到此错误。应该自动设置 DISPLAY 变量,对吗?

部分sshd_config

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

Gil*_*il' 8

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

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

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

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


ed.*_*ed. 4

你的命令应该有效,或者至少对我有效。试试这个:

ssh -Y user@machine xterm
Run Code Online (Sandbox Code Playgroud)

编辑(1):

尝试这个:

ssh -X user@machine env
Run Code Online (Sandbox Code Playgroud)

那应该显示所有环境。里面应该有各种 SSH 的东西,还有 DISPLAY。显示应为 10.0。

你也可以尝试这个:

ssh -X user@machine DISPLAY=10.0 xterm
Run Code Online (Sandbox Code Playgroud)


ani*_*uia -1

您应该首先打开连接,一旦建立就打开 xterm。