必须启用SSH服务并放行防火墙才能远程访问Mac:1.系统设置→通用→共享→开启远程登录;2.终端执行sudo systemsetup -setremotelogin on验证;3.隐私与安全性→防火墙→添加/usr/sbin/sshd并启用;4.运行ps aux | grep sshd确认sshd -i进程存在。

想让其他设备通过命令行安全访问你的 Mac,必须启用系统内置的 SSH 服务,否则 ssh 用户名@IP 地址 这类连接会直接失败,连密码提示都不会出现。
通过系统设置图形界面开启远程登录
这是最直观、最稳定的方式,适合所有用户,无需记忆命令,配置后自动加载服务并监听端口 22。
1、点击屏幕左上角苹果图标 → 选择“系统设置”。
2、在左侧边栏滚动到底部,点“通用” → 向下滚动并点“共享”。
3、在服务列表中找到“远程登录”,将其开关切换为开启状态。【开启后若右侧未显示“已允许访问”,说明系统权限未就绪,需重启“共享”面板或重新登录账户】。
4、右侧“已允许访问”区域可选“所有用户”或点击“信息”图标指定具体账户——若用 Apple ID 登录,务必确认该账户拥有本地管理员权限,否则远程登录会认证失败。
用终端命令快速启用SSH服务
适用于脚本部署或管理员批量操作,响应快,但不提供图形反馈,需手动验证。
方法一:启用服务
打开“终端”(路径:应用程序 → 实用工具 → 终端),输入以下命令并回车:
sudo systemsetup -setremotelogin on
输入管理员密码后,服务立即激活,但不会提示成功与否。
方法二:验证是否生效
紧接着执行:
sudo systemsetup -getremotelogin
若返回 【Remote Login: On】,表示已启用;若返回 Off 或报错“not supported”,说明当前 macOS 版本不支持该命令(如 macOS Sequoia 测试版),应退回图形界面方式操作。
放行防火墙,避免连接被静默拦截
即使 SSH 服务已运行,macOS 防火墙默认会阻止所有传入连接,导致远程设备反复超时,却看不到任何错误提示。
第一步:进入“系统设置” → “隐私与安全性” → “防火墙” → 点击“防火墙选项”。
第二步:检查列表中是否存在“远程登录(SSH)”。若没有,点击左下角“+”号 → 在弹出窗口中前往 /usr/sbin/ 目录 → 选择 sshd 文件添加。
第三步:确保该条目右侧勾选状态为启用,且协议类型为 TCP、端口为 22。【若误选 UDP 或留空端口,SSH 连接将始终失败】。
关闭窗口后规则即时生效,无需重启防火墙或系统。
本地验证sshd进程是否真实运行
完成上述步骤后,必须确认后台守护进程确实在跑,否则远程连接请求会被系统直接丢弃。
1、在终端中执行:
ps aux | grep sshd
2、查看输出中是否包含形如 root ... /usr/sbin/sshd -i 的行——注意末尾的 -i 参数,它代表以 inetd 模式监听,是 macOS 正常启用的标志。
3、若无此行,尝试手动加载系统服务:
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
4、再次执行 ps 命令,确认进程已出现。这一步不可跳过,尤其在刚升级 macOS 后,launchd 配置可能未自动刷新。


















