如果ssh能够建立连接,它将设置DISPLAY为适当的值。由于已将其X11DisplayOffset设置为10(默认值),因此ssh将使用从10开始的第一个可用显示。如果看到的值小于10¹,则说明ssh设置了正常的X11转发,至少是通过压倒性的DISPLAY。值:0(或:0.0,点后不相关的部分)表示在计算机上启动的第一个显示器,在典型情况下,这是计算机控制台上的活动会话(或图形登录提示)。
您观察到的行为最可能的解释是其中一个外壳程序配置文件集DISPLAY。最明显的罪魁祸首是~/.bashrc(由于bash的怪癖,只要bash的父对象是rshdor sshd,即使shell不是交互式的,它也会执行)。定义环境变量的另一个文件是/etc/environment。如果是这样,解决方案就很明显:不要在DISPLAY那里设置。(在极少数情况下,您需要DISPLAY手动设置。)
还有其他奇特的解释。如果您已将登录shell更改为screen(理论上是个好主意,但不切实际),并且有一个强制DISPLAY在屏幕内部设置的shell初始化文件(不是一个好主意),则可能会发生这种情况。如果您将服务器配置为接受客户端发送的环境变量(中的AcceptEnv指令sshd_config),客户端正在发送DISPLAY,并且无法建立X连接,也会发生这种情况。或者,如果您通过中的command指令在服务器上设置了环境变量,则可能会发生这种情况~/.ssh/authorized_keys。或者xterm可以是脚本。
¹ 或X11DisplayOffset服务器配置中的任何值,但几乎从未更改为默认值。
xterm在当前终端中运行吗?