如何克服 ssh 错误:无法打开显示:localhost:11.0

如何克服 ssh 错误:无法打开显示:localhost:11.0

希望有人能帮忙。我一直在网上搜索,但找不到有用的解决方案。我最近将我的 Ubuntu VM 从 20.04 版更新到了 22.04 版。更新完成后,我无法再使用 winxserver 在本地笔记本电脑屏幕上打开服务器的浏览器。幸运的是,我有一个 VMWare 快照,可以轻松地在两个版本的服务器之间切换。Ubuntu 20.04 可以使用以下步骤运行,但 22.04 不行。

我遵循了在线找到的一些提示:

/etc/ssh/sshd_config -> X11Forwarding yes
echo $DISPLAY -> localhost:11.0
cat /etc/hosts -> 127.0.0.1 localhost
                  127.0.1.1 server_name

我尝试删除我正在使用 ssh 的用户主目录中的 .Xauthority 文件,并让它在下次登录时重新创建,但错误仍然存​​在。已确认 x11-apps 是最新版本

sudo apt install x11-apps
x11-apps is already the newest version (7.7+8build2).

重现步骤:

  • 在 Windows 11 笔记本电脑上安装了带有 Xserver 的 cygwin

  • 打开 cygwin,在提示符下使用命令启动 Xserverstartxwin -- -listen tcp

  • 在 cygwin 中打开第二个窗口

  • 在第二个终端屏幕上设置显示变量 ->export DISPLAY=11.0

  • 尝试 ssh ->ssh -Y -C user@IP firefox

  • 提示输入密码。输入密码后出现错误:

    Could not find ':' in DISPLAY: 11.0
    Error: Can't open display: localhost:13.0
    
    
  • 然后我使用命令“$ export DISPLAY=13.0”将我的 cygwin 显示更改为 13.0,然后出现错误。

    警告:无 xauth 数据;使用虚假身份验证数据进行 X11 转发。在 DISPLAY: 13.0 中找不到“:”错误:无法打开显示:localhost:14.0

  • 有趣的是,如果我仅使用 PuTTy 并以同一用户身份 ssh 到服务器。尝试从命令提示符在后台打开 Firefox,使用命令时firefox &出现错误:

server_name:~$ MoTTY X11 proxy: Unsupported authorisation protocol Error: cannot open display: localhost:11.0

有想法该怎么解决这个吗?

嗨,Jos 我试了一下你的建议,但仍然出现错误。在 cygwin 中启动 Xserver 时,我看到它将显示导出为 0:0 -> winClipboardThreadProc - DISPLAY=:0.0。我已按照你的建议导出显示:$ export DISPLAY=:0 建立 ssh 连接 $ ssh -Y -C user@IP user@IP 的密码:连接到 Ubuntu 服务器尝试启动 firefox kw@kpmg-apicup:~$ firefox & [1] 21635 user@server_name:~$ X11 连接因身份验证错误而被拒绝。错误:无法打开显示:localhost:12.0

我似乎通过继续在 Google 上搜索找到了解决方案。为了防止将来其他人遇到此问题,以下是我所做的。

  1. 在 Windows 11 笔记本电脑上打开 cygwin 会话
  2. 从那里启动 xserver 运行命令 #startxwin ---listen tcp
  3. 检查 cygwin 导出的内容,在我的例子中是 0:0
  4. 在 cygwin 上打开一个新窗口并导出显示#export DISPLAY=0.0
  5. 在与 Ubuntu VM 的 ssh 连接上,我输入以下命令来启动 Firefox,应以您想要连接的用户身份执行 #XAUTHORITY=$HOME/.Xauthority /snap/bin/firefox (在 Google 上找到)
  6. 几秒钟后,虚拟机中的 Firefox 浏览器出现在我的笔记本电脑屏幕上。

答案1

我似乎通过继续在 Google 上搜索找到了解决方案。为了防止将来其他人遇到此问题,以下是我所做的。

  1. 在 Windows 11 笔记本电脑上打开 cygwin 会话
  2. 从那里启动 xserver 运行命令# startxwin -- -listen tcp
  3. 检查 cygwin 导出的内容,在我的例子中是 0:0
  4. 在 cygwin 上打开一个新窗口并导出 Display# export DISPLAY=0.0
  5. 在与 Ubuntu VM 的 ssh 连接上,我输入以下命令来启动 Firefox,应该以您想要连接的用户身份完成# XAUTHORITY=$HOME/.Xauthority /snap/bin/firefox(在 Google 上找到此命令)
  6. 几秒钟后,虚拟机中的 Firefox 浏览器出现在我的笔记本电脑屏幕上。

相关内容