如果我打开我的OSX防火墙,则不允许使用ssh。如果我将其关闭,ssh可以正常连接。这些是来自ssh 主机的设置:虽然我不知道我在做什么,但我认为给出/usr/sbin/sshd
“允许传入连接”(以及“远程登录(SSH)”)就足够了,但事实并非如此。还有什么我必须包括ssh(sshd?不确定)允许连接?
我只是通过系统偏好设置中的共享菜单“远程登录”来配置ssh。
如果我打开我的OSX防火墙,则不允许使用ssh。如果我将其关闭,ssh可以正常连接。这些是来自ssh 主机的设置:虽然我不知道我在做什么,但我认为给出/usr/sbin/sshd
“允许传入连接”(以及“远程登录(SSH)”)就足够了,但事实并非如此。还有什么我必须包括ssh(sshd?不确定)允许连接?
我只是通过系统偏好设置中的共享菜单“远程登录”来配置ssh。
Answers:
我也见过这个 - 似乎OSX应用防火墙变得混乱了。我设法通过以下方式让我的行动:
sudo rm /Library/Preferences/com.apple.alf.plist
然后重启。
一旦机器恢复,当您转到防火墙>高级设置时,您应该只看到已启用的系统服务(在您的情况下,SSH和屏幕共享)。其余条目已经消失,但当您启动任何需要通过防火墙访问的应用程序时,OSX会要求您再次允许该应用程序,然后应将其添加回防火墙例外列表(如果您允许它进入连接)。
以下命令在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
在我的例子中,我将/ 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)。
/usr/libexec/sshd-keygen-wrapper
从查找程序拖放到系统偏好设置>安全和隐私[防火墙](防火墙选项)对话框窗口,为我修复此问题 - 在共享对话框prefs中关闭/打开sshd后也是如此。