远程 SSH 模式
选中一个「远程 SSH」容器后,AiCode 进入远程工作区模式:AI 的读写文件、执行命令、跑终端全部发生在远程服务器上,~/workspace 映射到服务器上的指定目录,手机只作为操作界面。
适合服务器上已经有完整工具链,或者你想让 AI 直接改远程项目的情况。
前置:先建一个 SFTP 通道
远程 SSH 复用「连接与同步」页里的 SFTP 通道的连接信息(主机、端口、用户名、密码),所以要先去那里建好一个 SFTP 连接,见工作区同步。
FTP 和本地通道不支持执行命令,不会出现在可选列表里。
新建远程 SSH 容器
在「设置 → 容器与镜像」点右上角 +,选「远程 SSH」:
- 名称:这个配置的别名。
- SSH 连接通道:下拉选一个已配置的 SFTP 通道。如果没有可用通道,界面会提示先去「连接与同步」页配置,此时保存按钮不可用。
- 远程工作区路径:服务器上的目录,AI 的
~/workspace会映射到这里。选中通道时会自动填一个默认值(如/home/<用户名>/workspace),可以改。
保存后在列表里选中它即生效。
目前认证用的是 SFTP 通道里的密码。私钥认证底层已支持,但界面还没提供入口。
连接行为
- 自动连接:App 启动时如果当前是远程模式,会在后台自动连;连不上不会卡住界面,第一次执行命令时会再试。
- 保活与自动重连:连上后每 30 秒发一次心跳防止空闲断连;断线由后台自动重连(5 秒起、最长 30 秒的退避间隔),App 回到前台也会立即重试一次。
- 状态显示:对话页顶部会显示「SSH:已连接 / 连接中 / 连接失败 / 未连接」。未连接时消息区有等待提示,不会是一片空白。
- 路径自举:远程工作区路径不存在时会自动创建;如果该目录下没有任何子目录,会自动建一个叫
default的工作区,保证 AI 始终有可用的~/workspace。
哪些东西仍然在手机本地
这是最容易误解的地方。远程模式下命令、文件、终端、工作区都在服务器上,但下面这些配置和数据仍然存在手机本地:
| 项目 | 说明 |
|---|---|
| 聊天历史、模型与提供商配置、API Key、应用设置 | 全部本地 |
| 记忆(memory) | 本地。项目级记忆按「项目名 + 服务器标识」隔离,不同服务器上的同名工作区不会混淆 |
| 技能(skills) | 清单和正文从本地加载,AI 能正常调用。但技能正文里引用的脚本路径在服务器上不存在,这类技能主要面向本地模式 |
| MCP 服务器 | HTTP 类型由 App 直接连;stdio 类型跑在「默认容器」上(见下),不在远程服务器 |
| 工具授权规则 | 本地判定,远程模式同样生效 |
| 日志与工具输出 | 本地 |
AiCode 会在连接成功后把内置文档同步到服务器的 ~/.aicode/docs/,所以远程模式下 AI 也能查阅这些说明文档。
默认容器
远程模式下仍然有些东西需要在本地跑,比如 stdio 类型的 MCP server。它们运行在默认容器上,默认是内置 Alpine,可以在容器列表下方的「默认容器」分组里改成任意本地容器。
切换容器(包括切到远程 SSH)后,所有 stdio MCP 会自动断开并用新容器重连;HTTP MCP 不依赖容器,不受影响。
Git 署名与凭据的去向
Git 页面里保存的署名会写进当前执行环境——远程模式下就是写到服务器的 git 配置里。
凭据以手机本地的凭据文件为唯一来源。远程模式下可以在凭据页打开「自动注入凭证」(按服务器分别记忆,首次进入会询问),把凭据同步到服务器并只对工作区目录下的仓库生效,不影响服务器上其它目录的仓库,也不改动服务器用户的全局 git 配置。