无法运行" ssh -X"在MacOS Sierra上

时间:2016-09-21 16:44:09

标签: ssh terminal xterm macos-sierra

我刚升级到MacOS Sierra,我意识到我似乎无法运行" ssh -X"在终端命令了。它曾用于启动xterm窗口,但现在它就像我甚至不再使用-X选项了。在我更新之前,它工作得非常好。除了从OS X Yosemite到MacOS Sierra,我没有改变设置中的任何其他内容。

编辑:

正如所建议的那样,这是我在调试日志中发现的可能导致此问题的内容。

debug1: No xauth program.
Warning: untrusted X11 forwarding setup failed: xauth key data not generated

10 个答案:

答案 0 :(得分:47)

我不需要重新安装XQuartz,但是根据Matt Widjaja的回答,我想出了一个改进。

  • sudo vi /etc/ssh/ssh_config(这是ssh客户端配置,而不是sshd_config)
    • Host *条目下添加(或在每个主机的适当位置添加)
      • XAuthLocation /usr/X11/bin/xauth(在Sierra中xauth的位置发生了变化)
      • ServerAliveInterval 60(每隔60秒对服务器进行一次ping服务以保持ssh连接活动)
      • ForwardX11Timeout 596h(允许超出默认值20分钟的不受信任的X11连接)

当然,除了现有的ssh客户端连接外,无需重启ssh。

听起来像-Y(受信任的X11)比不受信任更可取。如果切换到trusted,可能会删除ForwardX11Timeout行。

ServerAliveInterval行也是可选的首选项。

也可以在~/.ssh/config(用户的配置文件)中进行这些更改,但权限必须正确。

编辑:我删除了ForwardX11和ForwardX11Trusted。它们不是必需的,而且ForwardX11的安全性较低,导致git(或使用ssh的其他工具)出现问题。

答案 1 :(得分:25)

我注意到macOS Sierra重置了我的X11设置,因此它禁用了我的xAuth程序。要在macOS Sierra上重新启用xAuth,请执行以下操作:

  1. 重新安装X11 / xQuartz,可能会重置macOS Sierra所做的任何更改。我在下面做了以下更改,虽然听起来这可能已经足够了。
  2. 加载终端
  3. filter
  4. 在该文件中,取消注释以下行,并将其设置为以下值:
    • sudo <text editor of your choice> /etc/ssh/sshd_config
    • X11Forwarding yes
    • [2017年10月10日更新]当您重新安装X11 / XQuartz时,首先应该添加:X11DisplayOffset 10我的位于/ opt / X11 / bin / xauth中。这可能是解释为什么重新安装有效的黄金步骤。
  5. 通过终端重启ssh。我这样做是通过运行:
    • XAuthLocation <path_to_your_xauth>
    • sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist

答案 2 :(得分:10)

升级到Mac OS X Sierra后,我在使用-X选项进行X11转发方面遇到了同样的问题。

查看ssh选项-Y(可信X11转发)。使用ssh -Y <host>时,事情对我有用。

答案 3 :(得分:5)

只需将一行XAuthLocation /usr/X11/bin/xauth添加到/etc/ssh/ssh_config即可在我的Mac上运行MacOS Sierra,以便ssh进入Linux主机并能够远程运行X Windows程序并将它们显示在XQuartz下我的Mac。

答案 4 :(得分:5)

我的解决方案如下:

(1)在尝试xquartz之前启动ssh -X。在xquartz选项中,我只启用了“在登录时打开”,然后它始终在后台运行。

(2)转到xquartz首选项菜单,在安全窗口中,单击“允许客户端连接”框。

做完这些事后,一切正常。

答案 5 :(得分:4)

这是一个老问题,但是最近我在运行10.12.6的Mac上遇到了同样的问题。终端中未设置DISPLAY变量,并且ssh -X不起作用。这就是我解决问题的方法:

  1. 使用Homebrew重新安装XQuartz: brew cask install xquartz(可能需要选项--forced

  2. 将XQuartz启动器添加到系统默认设置中(遵循此Reddit post中的解决方案: launchctl load -w /Library/LaunchAgents/org.macosforge.xquartz.startx.plist

  3. 重新启动系统。

完成这些操作后,我的DISPLAY变量已正确设置:

$ echo $DISPLAY /private/tmp/com.apple.launchd.mfXFpzZ0gC/org.macosforge.xquartz:0

ssh中的X11转发也可以。

答案 6 :(得分:2)

刚刚将我的macbook从El Capitan升级到Sierra。只需重新安装Xquartz就可以使用ssh -X [linux server]

为我完成

答案 7 :(得分:1)

我花了一整天的时间寻找解决方案才意识到最近的Sierra没有安装XQuartz https://support.apple.com/en-gb/HT201341。安装后(https://www.xquartz.org/)一切正常。

答案 8 :(得分:1)

如果安装了Quartz,那么所需要的就是添加一行&#34; X11Trusted yes&#34;在&#34;主持人*&#34;在/ etc / ssh / ssh_config文件中。

答案 9 :(得分:0)

重新启动XQuartz对我有用。