Agent.Space 博客

SSH 断开后 Claude Code 怎么继续运行?用 tmux 保留会话

在远端 tmux 会话里运行 Claude Code,学会分离、重连和检查任务;分清 SSH 断线、主机休眠、重启与等待授权。

如果你通过普通 SSH 终端使用 Claude Code,应当先在远端电脑的 tmux 里启动它,再断开连接。tmux 可以把终端会话和你正在查看它的连接分开,但不能让休眠的电脑保持工作、恢复已结束的进程,也不会替你批准 Claude 的操作。

本文假设 SSH 已经能连接,Claude Code 也已在远端安装并完成认证。如果任务实际跑在你的笔记本上,先看合上电脑后 Claude Code 是否继续运行。

开始前,确认是哪台电脑

在远端终端检查:

sh
hostnamepwdtmux -Vclaude --version

确认主机和项目是你要操作的对象。没有 tmux 时,经电脑主人同意,通过系统支持的软件包管理方式安装。不要默认租来的 Mac 或托管工作空间已经装好。

下文是根据文档整理的命令示例,不表示所有远端环境都经过实测。托管桌面、云端会话也可能有不同的运行时长和退出规则。

启动、离开,再回到原会话

tmux 官方入门说明介绍了命名会话,以及分离和重新连接的方法。

在远端电脑创建一个会话:

sh
tmux new-session -s claude-work

进入后,切换到实际项目目录,再启动 Claude Code:

sh
cd /path/to/your/projectclaude

路径是示例,需要替换。先安排一个小任务,例如只找出项目已有的测试命令,不运行、不修改文件。

按 Ctrl+B,松开,再按 D,就会离开当前视图,而不是退出里面的程序。重新通过 SSH 连接到同一台主机、同一个系统用户后,运行:

sh
tmux list-sessionstmux attach-session -t claude-work

查看会话里的实际输出。不要因为第一次连接消失,就在同一项目目录里又启动第二个 Claude 进程。

长任务之前,先验证断线行为

可以另外开一个 tmux 会话,在里面执行一个不调用模型的终端检查:

sh
sleep 15date

离开会话、关闭 SSH 连接,再连接回来查看。看到命令已完成,可以验证这个环境中的终端连续性;它不能证明付费模型请求、外部工具或几小时的编程任务一定成功。

仍然停了,要分清停在哪一层

发生了什么检查什么
SSH 断开,但远端主机正常重新连接原来的命名会话
tmux 找不到会话核对主机、系统用户、会话名,以及主机是否重启
Claude 等待批准检查请求的操作;保持连接不等于获得权限
模型请求失败阅读认证、额度或服务错误
主机休眠或重启恢复主机,检查文件和已保存历史,再决定哪些任务可以安全继续

Anthropic 的 Remote Control 文档也说明了保持主机进程运行的要求。Remote Control 和 SSH 是不同的查看入口,都不能把保存的聊天记录变成仍在运行的进程。具体区别见持续会话指南。

确实需要独立电脑,再考虑租赁

现有远端机器能满足需求时,仅仅断过一次连接,不是必须再租一台电脑的理由。如果你确实需要独立的 macOS 环境运行 Claude Code,可以查看 Agent.Space 独享 Mac 的配置和租赁条件,再按电脑接入说明连接。

机器是否在线、模型能否使用、任务拥有什么权限,要分别确认。独立电脑让工作有单独的运行主机,不保证程序永不中断,也不代表自动授权无人值守修改。