【问题标题】:SSH -X "Warning: untrusted X11 forwarding setup failed: xauth key data not generated"SSH -X“警告:不受信任的 X11 转发设置失败:未生成 xauth 密钥数据”
【发布时间】:2015-02-07 16:28:25
【问题描述】:

嘿,我在让 ssh X 转发工作时遇到问题。设置是我 sshing 到我的 ubuntu VM 关闭 OSX Yosemite 主机。

我已经在 OSX 上安装了 xQuartz,在 ubuntu 上安装了 xauth,我相信我已经在 ssh_config 文件中设置了所有正确的选项。

我明白了

Warning: untrusted X11 forwarding setup failed: xauth key data not generated
X11 forwarding request failed on channel 0

打开与ssh -X 的连接以及尝试运行 X 应用程序时的消息:

xterm: Xt error: Can't open display:
xterm: DISPLAY is not set

除了运行 Mavericks 之外,我在另一台机器上也有相同的设置,它工作正常,有什么特定于 Yosemite 的特定问题我需要担心吗?

【问题讨论】:

    标签: ssh xorg xserver


    【解决方案1】:

    请注意,一些不完整的答案可能会导致安全漏洞。

    1. 使用 ssh -Y 意味着这里有虚假的 xauth 信息,这是不好的!
    2. ssh -X 应该可以工作,因为 XQuartz 一旦启用,就会使用 xauth。唯一的问题是 ssh 在 /usr/X11R6/bin 中寻找 xauth,而在带有 XQuartz 的 macOS 上它在 /opt/X11/bin 中

    安全解决方案:

    1. 启用首选项 (Cmd-,) Security 选项卡中的第一个选项,该选项可启用经过身份验证的连接。

    2. 编辑~/.ssh/config,将XAuthLocation /opt/X11/bin/xauth 添加到主机配置中。

    3. ssh -X your_server 以安全的方式工作。

    4. 确保目标主机上安装了 xauth。

    【讨论】:

    • @TobySpeight 这个答案解决了我的 OSX->Linux 登录问题。就我而言,这非常有帮助。赞成。
    • 这修复了我的 X 转发在升级到 OSX High Sierra 后被破坏
    • 在 OSX Mojave 上不起作用,但@XValidated 下面的答案成功连接,但显示了有关缺少 xauth 数据的警告。
    • 我在 Mojave 上试过这个,它让 ssh -X ... 挂了。
    • 升级到 Mojave 后,我在 OP 中遇到错误。这解决了问题。
    【解决方案2】:

    在 macOS Sierra 上,我现在必须使用 ssh -Y 而不是 ssh -X 才能从 linux 机器上获取显示器,以便在我的 Mac 上工作。

    【讨论】:

    • 这可能会解决问题,但它也启用了可信转发,而不是更安全的可信转发。 @Koko 的回答为我解决了这个问题,而不必使用“-Y”而不是“-X”,这是更可取的。
    【解决方案3】:

    升级到 Yosemite 后,我收到了与您相同的警告。 在我的~/.ssh/config 文件中添加ForwardX11Trusted yes 后,警告消失了。

    您的 ~/.ssh/config 文件中是否包含以下行以启用 Trusted X11 转发?

    Host APPROPRIATE_HOSTNAME
        ForwardX11Trusted yes
        ForwardX11 yes
        OTHER_OPTIONS
    

    【讨论】:

    • 很高兴听到有人让它工作。你在说 ssh 的哪一边?我在 ubuntu 上的 ~/.ssh/config 中有这个。
    • 我不再收到警告,但我仍然收到 X11 forwarding request failed on channel 0
    • ssh 设置应该在“客户端”端进行调整,即你的 Mac 机器,因为你试图从你的 Mac 上 ssh 来使用主机 ubuntu VM 机器。 (以及为什么要 ssh 到 ubuntu 虚拟机?)
    • 适用于 macOS High Sierra
    • 我在 Redhat 中收到了同样的警告,而在 /etc/ssh/ssh_config 中更改配置文件就成功了。谢谢你
    【解决方案4】:

    Gilles Gouaillardet 的答案为我解决了这个问题。编辑 ~/.ssh/config 以包含

    Host *
        XAuthLocation /opt/X11/bin/xauth
    

    并且 ssh -X 主机名现在可以工作(XQuartz 2.7.11、macOS 10.4 Mojave)

    【讨论】:

    • 顺便说一句,目标主机上也需要 xauth
    【解决方案5】:

    我已经安装了最新的 XQuartz 2.7.11,但我想从那以后我也更新了几次操作系统。我重新安装了 XQuartz 2.7.11,现在可以正常使用了。

    【讨论】:

    • 很好的发现 - 重新安装相同(最新)版本的 XQuartz 也对我有用
    • 我也必须这样做;自从升级 macOS 后,我没有尝试使用 X 转发,虽然 XQuartz 可以正常启动,但转发不起作用。当其他答案都没有时,这有效。
    【解决方案6】:

    当您的 X 服务器没有 SECURITY 扩展时,即使对于您认为不受信任的连接,也需要 ForwardX11Trusted(Apple 服务器有大量占用 100 多行的视觉效果,因此我建议使用“xdpyinfo | grep SECURITY”来检查; 如果没有返回任何输出,你就没有它)。可能还有其他原因和例外,但这对我有用。

    【讨论】:

      【解决方案7】:

      我刚刚下载了最新的 X11 版本,它又可以工作了

      【讨论】:

        【解决方案8】:

        我刚刚使用 Mac OS X 10.6.8 到 Linux Debian 9 遇到了这个问题。 提供的解决方案均无效。

        根本原因是:目标 Linux 主机上的环回接口“关闭”。

        我必须在目标主机上输入以下内容来解决问题

        ip link set lo up

        【讨论】:

          【解决方案9】:

          与上面用户 Xvalidated 的回答相同。但是我的 .ssh 目录中没有 ssh_config 文件。 1. 复制 .​​/etc/ssh_config 到 ~/.ssh/ #file 如果不存在 2. 编辑 主机主机名 ForwardX11可信的是 ForwardX11 是的

          1. 如前所述,我想再添加一件事,以重新安装支持 X 的软件。

          【讨论】:

            【解决方案10】:

            登录集群时,请勿使用 -X 或 -Y 选项。

            例子:

            ssh -Y remotelogin: gives me X11 related warning. 
            

            ssh remotelogin:没有警告,工作正常。

            【讨论】:

            • -X 并不总是必要的
            • 所以...如果你不需要远程 X,那么就不要使用-X,明白了:)
            猜你喜欢
            • 2011-09-13
            • 2017-02-24
            • 1970-01-01
            • 2016-04-09
            • 2014-12-20
            • 2013-11-04
            • 2016-08-08
            • 2020-08-06
            • 1970-01-01
            相关资源
            最近更新 更多