我正在运行 CentOS/RHEL 6,并且遇到与下面引用的问题中所述相同的问题。
我已尝试了中建议的所有设置这个几乎相同的问题,但无济于事。
在服务器端,我有以下 sshd_config 设置:
X11Forwarding yes X11DisplayOffset 10
xauth
安装在服务器上,通过 SSH 成功连接后,我确实在~/.Xauthority
.我没有得到任何xauth相关错误。
当我使用 ssh -X
(并添加详细信息以进行故障排除-vvv
)时,我成功连接。当我尝试运行时,xclock
它失败并出现错误“无法打开显示:localhost:10.0“。这是一个 STDOUT 错误,而不是来自 的错误ssh -vvv
。我在 ssh 中没有收到任何失败的 X11 尝试。
然后我尝试验证该$DISPLAY
变量,但没有得到输出(未设置)。
是否还有其他设置$DISPLAY
正确的地方?在这种特殊情况下,我可以强制设置export DISPLAY=localhost:10.0
,然后在运行后正确返回echo $DISPLAY
。不幸的是,我仍然没有得到任何 X-Windows 程序(例如,xlcock
)回来。我仍然得到“无法打开显示:localhost:10.0“ 错误。
我不知所措。有什么建议么?$DISPLAY
在 SSH 会话期间还可以设置其他什么内容吗?
答案1
原来指导这里是正确的。
然而,我确实遇到了一个可能对其他人有帮助的独特问题。我开始使用 -vvv 进行故障排除,因为数据太多,我错过了一个关键警告(吸取的教训是开始更广泛的(-v
))。服务器的主机密钥已更改(新版本),并且我在 ssh_config 中禁用了密钥检查,因此由于密钥不匹配,X11 转发被 SSH 禁用。
答案2
你有没有尝试过使用ssh-Y连接?看起来 X11 转发仍然没有发生,并且您尝试在本地运行远程 X 程序,而不是使用本地显示器远程运行。
答案3
X11DisplayOffset 似乎导致了阻塞。
X11Forwarding yes # < You only need this one.
# X11DisplayOffset 10 # < comment it out here
# X11UseLocalhost no
Compression yes # < helps with transmission of data```
答案4
对我来说,我也遇到了同样的问题,但在我安装 X11 之前这些建议就已经完成了。结果问题是我在安装 X11 后忘记注销并重新登录。以防万一其他人也有同样的脑放屁。