要在公网 SSH 登录家里的 iMac,核心是三步:**在 iMac 上开启 SSH 服务 → 路由器做端口映射 → 用公网 IP/域名连接**。下面给你完整、可直接照着做的方案。
一、先在 iMac 上开启 SSH(远程登录)
1. 图形界面开启(推荐)
-
点击苹果菜单 → **系统设置** → **通用** → **共享**
-
打开 **远程登录** 开关
-
记下面板里显示的:
-
你的用户名(如 `jane`)
-
内网 IP(如 `192.168.1.100`)
-
SSH 命令示例:`ssh jane@192.168.1.100`
- 可选:点「信息」,限制仅指定用户可登录,更安全
2. 终端命令开启(备用)
```bash
开启 SSH
sudo systemsetup -setremotelogin on
查看状态
sudo systemsetup -getremotelogin
```
3. 防火墙放行(关键)
-
系统设置 → 网络 → 防火墙 → 选项
-
确保 **远程登录(SSH)** 已被允许
-
或临时关闭防火墙测试(测试后记得打开)
二、方案 A:路由器端口映射(有公网 IP 首选)
1. 确认你家有公网 IP
-
打开路由器管理页(通常 `192.168.1.1` 或 `192.168.0.1`)
-
看 WAN 口 IP:
-
若为 `10.x`/`172.16.x`/`192.168.x` → 是内网 IP,用方案 B
-
若为其他公网 IP → 可做端口映射
2. 设置端口映射(虚拟服务器)
-
登录路由器管理后台
-
进入 **高级设置 → 端口转发 / 虚拟服务器**
-
添加一条规则:
-
协议:**TCP**
-
外网端口:建议用非 22,如 `2222`(防扫描)
-
内网 IP:iMac 的内网 IP(如 `192.168.1.100`)
-
内网端口:**22**(SSH 默认端口)
- 保存并重启路由器
3. 配置 DDNS(解决公网 IP 变动)
-
路由器 → 高级设置 → **DDNS**
-
选择服务商(如花生壳、Cloudflare、No-IP)
-
注册账号,绑定一个域名(如 `myimac.xxx.com`)
-
路由器自动同步公网 IP 到域名
三、方案 B:内网穿透(无公网 IP 必选)
用 **cpolar** 或 **frp** 穿透,无需公网 IP、不用改路由器。
以 cpolar 为例(简单免费)
- 安装 cpolar
```bash
用 Homebrew 安装
brew install cpolar
注册并认证(去 cpolar 官网拿 Authtoken)
cpolar authtoken 你的token
安装并启动服务
sudo cpolar service install
sudo cpolar service start
```
- 创建 SSH 隧道
```bash
临时穿透(关闭终端失效)
cpolar tcp 22
后台常驻(推荐)
cpolar tcp 22 --background
```
- 获取公网地址
-
访问 `http://127.0.0.1:9200/\` 登录 cpolar 后台
-
状态 → 在线隧道列表,复制公网地址(如 `6.tcp.cpolar.top:14946`)
四、外网 SSH 连接命令
1. 端口映射方案(有公网 IP)
```bash
用公网 IP + 外网端口
ssh -p 2222 jane@123.45.67.89
用 DDNS 域名(推荐)
ssh -p 2222 jane@myimac.xxx.com
```
2. 内网穿透方案(cpolar)
```bash
ssh -p 14946 jane@6.tcp.cpolar.top
```
五、安全加固(必做)
- **禁用密码登录,只用密钥**
```bash
在外网电脑生成密钥
ssh-keygen -t ed25519
上传公钥到 iMac
ssh-copy-id -p 2222 jane@myimac.xxx.com
在 iMac 上禁用密码登录
sudo vi /etc/ssh/sshd_config
修改:
PasswordAuthentication no
ChallengeResponseAuthentication no
重启 SSH 服务
sudo launchctl stop com.openssh.sshd
sudo launchctl start com.openssh.sshd
```
- **修改默认端口**
-
不要用 22,改用 2222、3333 等
-
路由器/穿透工具同步改端口
- **限制登录 IP**
-
在 `sshd_config` 中用 `AllowUsers` 限制可登录用户
-
路由器防火墙仅放行你的常用外网 IP
六、常见问题排查
- 连接超时
-
检查 iMac SSH 是否开启、防火墙是否放行
-
检查路由器端口映射是否正确、是否重启
-
检查公网 IP/域名是否正确
- 连接被拒绝
-
确认 iMac 内网 IP 未变
-
确认端口映射内外端口一致
-
确认 iMac 未休眠(系统设置 → 电池 → 永不休眠)
- 无公网 IP
-
联系运营商申请公网 IP(部分地区收费)
-
直接用内网穿透方案(cpolar/frp)
七、一句话总结
-
有公网 IP:**端口映射 + DDNS**,稳定免费
-
无公网 IP:**cpolar 内网穿透**,简单快速
-
安全第一:**密钥登录 + 改端口 + 限 IP**
需要我给你生成一份可直接复制的 **iMac SSH 安全加固配置清单**(含密钥登录、禁用密码、端口修改)吗?