我正在尝试使用xterm
ssh 在我的远程服务器(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 的父级是rshd
或sshd
,就会执行 ,即使 shell 不是交互式的)。另一个定义环境变量的文件是/etc/environment
。如果是这种情况,解决方案很明显:不要DISPLAY
在那里设置。 (很少有需要DISPLAY
手动设置的情况。)
还有其他奇怪的解释。如果您将登录 shell 更改为screen
(理论上是个不错的想法,但不切实际),并且您有一个强制设置DISPLAY
内部屏幕的 shell 初始化文件(不是一个好主意),则可能会发生这种情况。如果您将服务器配置为接受客户端发送的环境变量(AcceptEnv
中的指令sshd_config
),客户端正在发送,并且无法建立 X 连接,也可能会发生这种情况。或者,如果您通过中的指令DISPLAY
在服务器上设置环境变量,也可能发生这种情况。或者可能是脚本。command
~/.ssh/authorized_keys
xterm
¹或者服务器配置中的任何值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
答案4
我发现xauth没有被安装。