2016-09-21 180 views
16

我刚升级到MacOS Sierra,我意识到我似乎无法在终端中运行“ssh -X”命令​​。它用来启动xterm窗口,但现在它就像我甚至没有把-X选项一样。在我更新之前,它工作得很好。除了从OS X Yosemite到MacOS Sierra之外,我没有改变设置中的其他任何东西。无法在MacOS上运行“ssh -X”Sierra

编辑:

至于建议,这就是我在这可能会引起这个问题的调试日志中。

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

您是否升级客户端或服务器? – arkascha

+0

@arkascha抱歉,让我澄清。我正在运行MacOS Sierra(客户端)尝试SSH到一个Ubuntu服务器。 – Dodie

+1

你真的在你的Mac上运行X服务器吗?在你的mac shell中,DISPLAY环境设置为什么?你可以用“-vv”选项运行ssh并且[编辑]你的问题来包含调试输出吗? – Kenster

回答

24

我注意到macOS Sierra重新设置了我的X11设置,因此它禁用了我的xAuth程序。在macOS Sierra上重新启用xAuth:

  1. 重新安装X11/xQuartz以假定重置macOS Sierra所做的任何更改。我也在下面做了以下更改,尽管听起来像这可能就足够了。
  2. 加载一个终端
  3. sudo <text editor of your choice> /etc/ssh/sshd_config
  4. 在该文件中,取消对下面的行,并将其设置为这些值:
    • X11Forwarding yes
    • X11DisplayOffset 10
    • [上Update 10的/ 07/2017]重新安装X11/XQuartz时,首先应该添加:XAuthLocation <path_to_your_xauth>,其中mine位于/ opt/X11/bin/xauth中。这可能是解释重新安装工作的重要一步。
  5. 通过终端重新启动ssh。我这样做是运行:
    • sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
    • sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
+0

我试过这样做,但它并没有改变我的任何事情。对我的机器有什么不同的想法? – Dodie

+0

您是否尝试重新安装您的Mac使用的任何xAuth工具(我的猜测是X11)?我也是这样做的。如果只需要这些,我很怀疑,所以这就是为什么我没有提到它,但我想这是我尝试的另一件事。 –

+3

重新安装XQuartz终于使其工作!我没有想过尝试,因为我正在等待XQuartz的新版本。谢谢! – Dodie

7

我升级到Mac OS X塞拉利昂后无法正常使用X11转发与-X选项相同的问题。

看看ssh选项-Y(可信X11转发)。虽然使用ssh -Y <host>的东西适合我。

+0

当我尝试 - 我仍然得到这个错误:警告:没有xauth数据;使用假身份验证数据进行X11转发。 – Dodie

22

我并不需要重新安装XQuartz,但是,根据马特聪的回答,我想出了一个细化。

  • sudo vi /etc/ssh/ssh_config(这是SSH客户端的配置,而不是sshd_config中)
    • 根据Host *条目添加(或添加每个主机在适当情况下)
      • XAuthLocation /usr/X11/bin/xauth(XAUTH的位置在改变Sierra)
      • ServerAliveInterval 60(每60秒ping一次服务器以保持你的ssh连接有效)
      • ForwardX11Timeout 596h(允许超过20分钟的默认信任的X11连接)

无需重新启动SSH的,当然除了现有的SSH客户端连接。

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

ServerAliveInterval行也是一个可选的首选项。

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

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

+0

我一直在使用ssh -Y多年。然而,Sierra似乎仍然存在一个新问题:如果远程窗口使用OpenGL,则根据X服务器的不同,它会以各种方式失败。 XQuartz似乎只是放弃了,而另一些人则报告称,xorg不会崩溃,但也不会重新绘制损坏的窗口。 – bodgesoc

+0

在10.12我不得不用这样的:须藤的/ etc/SSH/ssh_config中,我添加了这行:'''主机* XAuthLocation的/ opt/X11 /斌/ XAUTH ServerAliveInterval 60 ForwardX11Timeout 596h''' – dajobe

2

只需添加一行在我的Mac XAuthLocation /usr/X11/bin/xauth/etc/ssh/ssh_config作品,运行MacOS的塞拉利昂,ssh到Linux主机,并可以远程运行X Windows程序,并让它们在我的Mac XQuartz下显示。

2

刚将我的Macbook从El Capitan升级到Sierra。简单地重新安装Xquartz已经完成了我的技巧,使用ssh -X [linux服务器]

+0

这是首先要尝试的事情。为我工作。 – TomKraljevic

2

我的解决方案如下。

(1)在尝试ssh -X之前启动xquartz。在xquartz选项中,我只启用了“在登录时打开”,然后它始终在后台运行。 (2)转至xquartz首选项菜单,然后在安全窗口中,单击“允许客户端连接”框。

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

0

如果安装了Quartz,只需在/ etc/ssh/ssh_config文件的“Host *”下添加“X11Trusted yes”行。

相关问题