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