无法在MacOS上运行“ssh -X”Sierra
我刚升级到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
我注意到macOS Sierra重新设置了我的X11设置,因此它禁用了我的xAuth程序。在macOS Sierra上重新启用xAuth:
- 重新安装X11/xQuartz以假定重置macOS Sierra所做的任何更改。我也在下面做了以下更改,尽管听起来像这可能就足够了。
- 加载一个终端
sudo <text editor of your choice> /etc/ssh/sshd_config
- 在该文件中,取消对下面的行,并将其设置为这些值:
X11Forwarding yes
X11DisplayOffset 10
- [上Update 10的/ 07/2017]重新安装X11/XQuartz时,首先应该添加:
XAuthLocation <path_to_your_xauth>
,其中mine位于/ opt/X11/bin/xauth中。这可能是解释重新安装工作的重要一步。
- 通过终端重新启动ssh。我这样做是运行:
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
我升级到Mac OS X塞拉利昂后无法正常使用X11转发与-X
选项相同的问题。
看看ssh选项-Y
(可信X11转发)。虽然使用ssh -Y <host>
的东西适合我。
当我尝试 - 我仍然得到这个错误:警告:没有xauth数据;使用假身份验证数据进行X11转发。 – Dodie
我并不需要重新安装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的工具)出现问题。
只需添加一行在我的Mac XAuthLocation /usr/X11/bin/xauth
到/etc/ssh/ssh_config
作品,运行MacOS的塞拉利昂,ssh到Linux主机,并可以远程运行X Windows程序,并让它们在我的Mac XQuartz下显示。
刚将我的Macbook从El Capitan升级到Sierra。简单地重新安装Xquartz已经完成了我的技巧,使用ssh -X [linux服务器]
这是首先要尝试的事情。为我工作。 – TomKraljevic
我的解决方案如下。
(1)在尝试ssh -X
之前启动xquartz
。在xquartz选项中,我只启用了“在登录时打开”,然后它始终在后台运行。 (2)转至xquartz
首选项菜单,然后在安全窗口中,单击“允许客户端连接”框。
做完这些事情后,一切正常。
我花了整整一天的时间寻找解决方案,才意识到最近塞拉利昂并没有装运XQuartz安装https://support.apple.com/en-gb/HT201341。安装后(https://www.xquartz.org/)全部作品。
如果安装了Quartz,只需在/ etc/ssh/ssh_config文件的“Host *”下添加“X11Trusted yes”行。
您是否升级客户端或服务器? – arkascha
@arkascha抱歉,让我澄清。我正在运行MacOS Sierra(客户端)尝试SSH到一个Ubuntu服务器。 – Dodie
你真的在你的Mac上运行X服务器吗?在你的mac shell中,DISPLAY环境设置为什么?你可以用“-vv”选项运行ssh并且[编辑]你的问题来包含调试输出吗? – Kenster