XForwarding 突然停止工作

XForwarding 突然停止工作

我使用 Cygwin/X 通过 ssh 进入 VirtualBox 托管的 Ubuntu 服务器,该服务器已经安装了各种 X 组件:

ssh -X user@IPADDRESS

进入后,我可以运行gnome-terminal,然后终端会弹出。进入后,我可以打开新选项卡,运行geany(GEdit 等文本编辑器)等等,一切正常,窗口打开,一切正常。

然后,在某个时候,发生了一些事情,我无法打开任何使用 X 的新应用程序。现有应用程序运行良好,但任何新应用程序都会抱怨无法打开显示屏。例如:

user@SERVER:/mnt/smb$ geany
Geany: cannot open display

思考在我使用 sudo 执行以下命令后,就会发生这种情况:

sudo apt-get install XXXX

问题启动之后,DISPLAY环境变量跟之前一样。

唯一可能有用的其他信息是,当我第一次登录机器时,身份验证后立即出现以下内容:

Warning: untrusted X11 forwarding setup failed: xauth key data not generated
Warning: No xauth data; using fake authentication data for X11 forwarding.

有任何想法吗?

答案1

一些想法:

  1. 尝试以 身份调用 ssh ssh -Y,也就是说,您信任要 ssh 连接的机器。这可能只会消除第一个警告,但值得一试。
  2. 确保防火墙不会阻止任何通信
  3. 确保远程服务器没有启用 XC-SECURITY 扩展(SECURITY 显示在 xdpyinfo 的输出中)。
  4. 使用ssh -vvv以获取更多信息。

答案2

sudo 擦除你的显示屏。

sudo 文档建议在会话中间使用“pam_env”来恢复登录环境——问题是,它不能。只有在初次登录时,pam_env 才可以使用 REMOTE_HOST 和 DISPLAY 等内容,以便它可以将正确的值合并到您的环境中。稍后,再次调用 pam_env 只会确保这些值归零,(即使配置了 sudoers 文件以不重新初始化环境)。即由于 sudo 文档中给出的安全信息不正确,DISPLAY 无论如何都可能会被清除。

要修复它,您必须撤消发行版的错误配置设置(遵循了 sudo 建议),并配置 sudo 以免破坏您的环境。即使如此。如果您的环境中有您依赖的功能(我有一个功能来确定我是否在 cygwin 上 - 在两者上使用相同的 init shell) - 它们将被清除。因此,任何因为更方便或更有用而保存在功能中的安全和配置信息都将被 sudo 清除。

简而言之,sudo 需要修复或替换。

遗憾的是,在正确答案出现之前,悬赏就被迫结束了。不过,有正确答案总比没有好。

相关内容