配置OSX防火墙以允许SSH服务器?


10

如果我打开我的OSX防火墙,则不允许使用ssh。如果我将其关闭,ssh可以正常连接。这些是来自ssh 主机的设置:虽然我不知道我在做什么,但我认为给出/usr/sbin/sshd“允许传入连接”(以及“远程登录(SSH)”)就足够了,但事实并非如此。还有什么我必须包括ssh(sshd?不确定)允许连接?

OSX上的防火墙配置屏幕

我只是通过系统偏好设置中的共享菜单“远程登录”来配置ssh。


如此处所述(discuss.apple.com/thread.jspa?threadID=2174585),删除sshd-keygen-wrapper,重新启动并对ssh-keygen-wrapper说“是”(虽然它已设置为“是”)似乎可行。
Dan Rosenstark 2011年

Answers:


9

我也见过这个 - 似乎OSX应用防火墙变得混乱了。我设法通过以下方式让我的行动:

sudo rm /Library/Preferences/com.apple.alf.plist

然后重启。

一旦机器恢复,当您转到防火墙>高级设置时,您应该只看到已启用的系统服务(在您的情况下,SSH和屏幕共享)。其余条目已经消失,但当您启动任何需要通过防火墙访问的应用程序时,OSX会要求您再次允许该应用程序,然后应将其添加回防火墙例外列表(如果您允许它进入连接)。


我发现如果运行“sudo ipfw -f flush”然后关闭并重新打开“系统偏好设置”,则可以避免重启步骤。
Mark E. Haase

7

以下命令在Yosemite上为我工作

cd /usr/libexec/ApplicationFirewall
sudo ./socketfilterfw --setloggingmode on
sudo ./socketfilterfw --setloggingopt detail
sudo tail -f /var/log/appfirewall.log

尝试通过SSH连接到Mac。您应该看到一个拒绝条目,在我的案例中是sshd-keygen-wrapper

Oct 27 15:22:12 myhost socketfilterfw[4940] <Info>: Deny sshd-keygen-wrapper connecting from 192.168.0.2:49470 to port 22 proto=6

然后只需将/ usr / libexec / sshd-keygen-wrapper(由mehaase建议)添加到允许的应用程序列表中,但不需要重新启动

要重新切换日志记录级别

./socketfilterfw --setloggingopt throttled

6

在我的例子中,我将/ usr / libexec / sshd-keygen-wrapper添加到防火墙设置并重新启动。

我在这里找到了这个想法:https//discussions.apple.com/thread/2174585?threadID = 2174585

一个很好的故障排除技术:打开Console.app并观察/var/log/appfirewall.log(或命令行中的tail -f /var/log/appfirewall.log)。


(对于OSX 10.11)/usr/libexec/sshd-keygen-wrapper从查找程序拖放到系统偏好设置>安全和隐私[防火墙](防火墙选项)对话框窗口,为我修复此问题 - 在共享对话框prefs中关闭/打开sshd后也是如此。
jimmont 2016年

2

在El Capitan 10.11.5中,sshd-keygen-wrapper在允许的连接列表中,但设置为阻止。只需要将其设置为允许,并且远程SSH登录工作。无需重启。


10.11.6的相同,简单的修复。谢谢!
TomEE
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.