Ubuntu 22.04升级后SSH X11转发无法打开远程Firefox的问题求助
Ubuntu 22.04升级后SSH X11转发无法打开远程Firefox的问题求助
大家好,我最近遇到了一个棘手的问题,想请教下有没有人能帮忙解决——我把Ubuntu虚拟机从20.04升级到22.04后,就没法通过WinXServer在本地Windows 11笔记本上打开服务器的浏览器了。好在我之前做了VMware快照,可以在两个版本之间切换,20.04用原来的操作步骤完全没问题,但22.04就是不行,我搜了很多网页都没找到有效的解决办法。
我已经尝试过的排查步骤
- 修改了
/etc/ssh/sshd_config,确保X11Forwarding yes配置项正确启用 - 检查过DISPLAY变量,
echo $DISPLAY输出为localhost:11.0 /etc/hosts里的本地主机映射也正常:127.0.0.1 localhost 127.0.1.1 server_name- 删除了SSH登录用户家目录下的
.Xauthority文件,让系统在下次登录时重新生成,但问题依旧存在 - 确认
x11-apps已经是最新版本,执行sudo apt install x11-apps后,系统提示已经是最新版7.7+8build2
问题复现步骤
- 在Windows 11笔记本上安装了带Xserver的Cygwin
- 打开Cygwin终端,用命令
startxwin -- -listen tcp启动Xserver - 打开第二个Cygwin窗口,设置DISPLAY变量:
export DISPLAY=11.0 - 尝试通过SSH启动远程Firefox:
ssh -Y -C user@IP firefox - 输入密码后出现报错:
Could not find ':' in DISPLAY: 11.0 Error: Can't open display: localhost:13.0 - 把DISPLAY改成
13.0后再次尝试,又出现新的报错:Warning: No xauth data; using fake authentication data for X11 forwarding. Could not find ':' in DISPLAY: 13.0 Error: Can't open display: localhost:14.0
用PuTTY尝试的情况
我还试过用PuTTY SSH登录服务器,然后在后台启动Firefox:firefox &,结果报错:
MoTTY X11 proxy: Unsupported authorisation protocol Error: cannot open display: localhost:11.0
尝试过其他建议但未解决
后来我按照别人的建议尝试了调整DISPLAY变量:启动Xserver时看到它导出的DISPLAY是0:0,于是在Cygwin里设置export DISPLAY=:0,再SSH连接服务器后启动Firefox,还是报错:
X11 connection rejected because of wrong authentication. Error: cannot open display: localhost:12.0
最终找到的解决方法
不过我后来继续搜索谷歌找到了可行的解决方案,分享给可能遇到同样问题的朋友:
- 在Windows 11的Cygwin终端里启动Xserver:
startxwin -- -listen tcp - 确认Cygwin当前导出的DISPLAY值(我这里显示的是
0:0) - 打开新的Cygwin窗口,设置DISPLAY变量:
export DISPLAY=0.0 - SSH登录到Ubuntu虚拟机后,以当前登录用户身份执行以下命令启动Firefox:
执行完命令几秒后,虚拟机上的Firefox就正常显示在我的笔记本屏幕上了!XAUTHORITY=$HOME/.Xauthority /snap/bin/firefox
备注:内容来源于stack exchange,提问作者Kenneth Wendt
相关产品推荐
相关产品推荐

