我刚升级到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
答案 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,请执行以下操作:
filter
sudo <text editor of your choice> /etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
我的位于/ opt / X11 / bin / xauth中。这可能是解释为什么重新安装有效的黄金步骤。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
不起作用。这就是我解决问题的方法:
使用Homebrew重新安装XQuartz:
brew cask install xquartz
(可能需要选项--forced
)
将XQuartz启动器添加到系统默认设置中(遵循此Reddit post中的解决方案:
launchctl load -w /Library/LaunchAgents/org.macosforge.xquartz.startx.plist
重新启动系统。
完成这些操作后,我的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对我有用。