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

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

如果我打开 OSX 防火墙,则不允许使用 ssh。如果我将其关闭,ssh 可以正常连接。这些是 ssh 的设置主持人:虽然我不知道自己在做什么,但我认为提供/usr/sbin/sshd“允许传入连接”(以及“远程登录(SSH)”)就足够了,但事实并非如此。我还需要为 ssh(sshd?不确定)添加什么才能允许连接?

OSX 上的防火墙配置屏幕

我正在通过系统偏好设置中的共享菜单“远程登录”专门配置 ssh。

答案1

下面的命令在 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

答案2

我也看到了这种情况 - 似乎 OSX 应用程序防火墙变得混乱了。我通过执行以下操作设法使我的防火墙正常运行:

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

然后重新启动。

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

答案3

就我而言,我将 /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)。

答案4

在 El Capitan 10.11.5 中,它sshd-keygen-wrapper位于允许连接列表中,但被设置为阻止。只需将其设置为允许,远程 SSH 登录即可。无需重启。

相关内容