首页/文章/过夜跑 Claude Code 前:在新加坡 Mac mini 上把远程登录先审计一遍

过夜跑 Claude Code 前:在新加坡 Mac mini 上把远程登录先审计一遍

· Zumac.Ai

过夜方便,不代表远程登录已经收紧

把 Claude Code 挂在常开的新加坡 Mac mini 上过夜,用远程组网或 SSH 早上接回去看进度,是很多人已经在用的工作流。笔记本可以合盖,重构与测试继续在远端跑。

社区里也有人提醒:远程 SSH、过夜自动化相关的风险正在被重新讨论。你不必恐慌,但也不要把「我能连上」当成「登录面已经审计过」。常见疏忽包括:

  • 仍开着密码登录,或 authorized_keys 里留着旧笔记本、临时协作者的公钥。
  • 习惯性打开 SSH Agent Forwarding,密钥相当于「跟着会话走」。
  • 多个 tmux / 多个 Claude 会话共用同一套宽松环境,出错时分不清谁改了什么。
  • 只关心 Claude 的权限弹窗,却从没看过本机 SSH 实际加载了什么。

本文把「接回方便」和「登录面收紧」拆开:先在整机独享的新加坡 Mac mini 上做一轮可复现的 SSH 审计,再挂过夜任务。Claude 账号由你自己开通;机器提供的是稳定合规的使用环境。

说明:macOS 与 OpenSSH 的路径、开关名称以你当前系统为准。下列命令以只读检查为主;改配置前先备份。

第一步:分清三条通道

过夜场景里通常有三条互不替代的通道:

  1. SSH:改配置、进入 tmux、看日志、跑 claude 命令行。
  2. UU 远程连接或桌面通道:需要 GUI、批准偶发权限、用桌面版 Claude 时。
  3. Claude Code 进程本身:在 tmux 里跑的长会话,不负责「你怎么登录这台机器」。

审计对象是前两条的登录与会话边界。目标很具体:只有你的密钥能进 SSH;长任务跑在可命名、可重连的会话里;不把本机 SSH agent 无必要地转发给每一次远程会话。

第二步:只读摸清当前 SSH 状态

用你平时过夜用的同一条链路登入新加坡 Mac mini:

whoami
ls -ld ~ ~/.ssh ~/.ssh/authorized_keys 2>/dev/null
lsof -nP -iTCP -sTCP:LISTEN | grep -i ssh || true
ssh -G localhost 2>/dev/null | egrep -i '^(port|pubkeyauthentication|passwordauthentication|kbdinteractiveauthentication|forwardagent|gatewayports|x11forwarding) ' || true

若看得到系统配置文件,再补:

test -f /etc/ssh/sshd_config && egrep -n '^(#)?(PasswordAuthentication|PubkeyAuthentication|PermitEmptyPasswords|AllowUsers|AuthorizedKeysFile|AllowAgentForwarding|X11Forwarding|ClientAliveInterval|ClientAliveCountMax)' /etc/ssh/sshd_config || true

把输出记在本机笔记(不要贴进公开聊天),并回答:是不是主要靠公钥?authorized_keys 每一行还认识吗?Agent Forwarding / X11 是否开着且真的需要?SSH 断了之后 Claude 是否还在 tmux 里?

第三步:清理 authorized_keys

ssh-keygen -lf ~/.ssh/authorized_keys 2>/dev/null || cat ~/.ssh/authorized_keys
  • 删:对不上设备、注释空白且来源不明、临时用过的密钥。
  • 留:当前笔记本与备用机;每条最好有可读注释。
  • 权限:家目录与 .ssh 过宽时,OpenSSH 可能忽略密钥文件;保持仅本人可写是常见期望。

改完后先从另一台仍应能登录的设备测一次,再撤淘汰密钥,避免把自己锁在门外。系统「远程登录」若支持指定用户,优先收窄到你自己的账号。

第四步:关掉图省事的转发

SSH Agent Forwarding(ForwardAgent)让远端临时借用笔记本密钥去拉私有仓库,短时排障可以,过夜长会话不适合当默认。

在笔记本上检查:

grep -nE 'ForwardAgent|Host ' ~/.ssh/config 2>/dev/null | head -40

建议默认 ForwardAgent no;仅对某个 Host 或单次 -A 临时打开。在 Mac mini 上拉私有代码,优先用只部署在这台机器上的 deploy key / 机器身份。过夜 Claude Code 一般不需要经 SSH 转桌面协议;桌面需求走 UU 远程连接即可。

第五步:空闲断开与进程保活拆开

SSH 断了不等于 Claude 死了——前提是长任务在 tmux 里:

tmux has-session -t claude-night 2>/dev/null || tmux new -d -s claude-night
tmux attach -t claude-night

服务端可按需配置客户端保活,避免 NAT 静默丢连接;同时接受「SSH 会断、tmux 不断」是正常分工。过夜前再确认:机器不会因休眠冻住进程;Claude Code 的权限规则已挡住无人值守不该自动放行的写操作;进度有文件或 git 可接力。

第六步:十分钟验收清单

  • [ ] ssh-keygen -lf ~/.ssh/authorized_keys 每一行都能说出设备
  • [ ] 密码登录若仍开启,确认是有意保留;否则改为仅密钥
  • [ ] 客户端默认 ForwardAgent no;无永久 -A 别名
  • [ ] tmux ls 看得到过夜会话;故意断 SSH 再 attach,进程仍在
  • [ ] UU 远程连接与 SSH 都能进同一台整机
  • [ ] 不把私钥或 authorized_keys 全文贴进公开渠道

结果可写进本机 docs/remote-login-audit.md(只写结论与日期,不写密钥材料)。

和 Claude Code 怎么拼

推荐顺序:先审计登录面 → 再在 tmux 挂长任务 → 配好权限规则与 hook → 早上 SSH attach 看日志,需要 GUI 时再用 UU 远程连接。终端版适合脚本与 SSH,桌面版利于看视觉 diff;两边可以都用,但权威运行环境只放一台新加坡 Mac mini,避免状态分叉。

为什么放在新加坡的常开 Mac mini 上做

  • 登录面与任务面同机:密钥、tmux、Claude 会话在同一台整机,审计一次就能覆盖过夜路径。
  • 整机独享:authorized_keys 与本地 deploy key 不与其他客户混用;退租抹机时登录面一并结束。
  • 真 macOS 工具链:过夜跑的也是同一套 Darwin 环境,减少「云里一套、本地一套」丢上下文。
  • 远程可接回:SSH 管命令行,UU 远程连接管桌面确认;实际延迟取决于你本地的网络线路。

Zumac.Ai 提供位于新加坡的实体 Mac mini M6,整机独享,支持 SSH 与 UU 远程连接,FileVault 全盘加密,退租时抹机重装。新客户整机租用 ¥999/月起,季付 ¥2,697.30,半年付 6 送 1 为 ¥5,994,年付 12 送 2 为 ¥11,988;已购买客户续费保持原价。新客户首单自审核开通当天起租,续费及老客户新订单自付款当天起租。建议先租一个月,把「SSH 审计 → tmux 过夜 → 早上接回」跑通。

小结

  • 过夜跑 Claude Code 前先审计远程登录,不要默认「能连上就安全」。
  • 清理 authorized_keys,优先密钥登录,默认关闭 Agent Forwarding。
  • SSH 负责接回,tmux 负责保活;登录审计不能替代权限规则。
  • 把权威环境固定在新加坡常开 Mac mini,比多台设备各自敞着远程入口更可控。

有问题可以在 Telegram 联系 @singatao,或直接看 价格与付款周期。

Zumac.Ai 新加坡 Mac mini M6,整机独享,¥999/月起,联系 Telegram @singatao。
查看方案与费用 · 帮助中心

返回首页 · 更多文章

Telegram 客服