SSH -X"警告:不受信任的X11转发设置失败:未生成xauth密钥数据"

spr*_*121 55 ssh xserver xorg

嘿,我有一个问题让ssh X转发工作.设置是我在sshOSX Yosemite主机上进入我的ubuntu VM.

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

我明白了

Warning: untrusted X11 forwarding setup failed: xauth key data not generated
X11 forwarding request failed on channel 0
Run Code Online (Sandbox Code Playgroud)

打开连接时的消息ssh -X,当我尝试运行X应用程序时:

xterm: Xt error: Can't open display:
xterm: DISPLAY is not set
Run Code Online (Sandbox Code Playgroud)

我在我的另一台机器上有相同的设置,除了运行Mavericks并且它工作正常,是否有特定于Yosemite特定的东西我需要担心?

小智 51

在MacOS塞拉利昂,我现在需要做的ssh -Y,而不是ssh -X从一台Linux机器获得一个显示我的Mac上运行.

  • 这可能会解决问题,但它也支持可信转发,而不是更安全的可信转发。@Koko 的回答为我修复了它,而不必使用“-Y”而不是“-X”,这是更可取的。 (2认同)

小智 44

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

  1. 使用ssh -Y意味着这里有假的xauth信息,这很糟糕!
  2. ssh -X应该可以工作,因为XQuartz一旦启用,就会使用xauth.唯一的问题是ssh正在寻找/ usr/X11R6/bin中的xauth和使用XQuartz的macos,它位于/ opt/X11/bin中

安全解决:

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

  2. 编辑〜/ .ssh/config,添加/usr/X11R6/bin到主机配置.

  3. ~/.ssh/config 以安全的方式工作.

  4. 确保将xauth安装到目标主机.

  • @TobySpeight 这个答案解决了我的 OSX->Linux 登录问题。就我而言,这非常有帮助。已投赞成票。 (2认同)

XVa*_*ted 34

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

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

Host APPROPRIATE_HOSTNAME
    ForwardX11Trusted yes
    ForwardX11 yes
    OTHER_OPTIONS
Run Code Online (Sandbox Code Playgroud)

  • 我不再收到警告,但我仍然在通道0上收到X11`转发请求失败 (3认同)
  • 很高兴听到有人让它工作.你在谈论ssh的哪一方?我在ubuntu的〜/ .ssh/config中有这个. (2认同)

小智 10

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

Host *
    XAuthLocation /opt/X11/bin/xauth
Run Code Online (Sandbox Code Playgroud)

和 ssh -X 主机名现在可以使用(XQuartz 2.7.11,macOS 10.4 Mojave)


小智 5

我已经安装了最新的XQuartz 2.7.11,但我认为从那以后我也已经更新了几次操作系统.我重新安装了XQuartz 2.7.11,现在它运行正常.