X11 未通过 SSH 转发($DISPLAY 未设置)

X11 未通过 SSH 转发($DISPLAY 未设置)

我正在运行 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 后忘记注销并重新登录。以防万一其他人也有同样的脑放屁。

相关内容