把 Claude Code 放在 VPS 上,适合需要长期在线的远程开发、服务器排障和自动化脚本。SSH 登录后直接在 Git 仓库里运行 claude,代码、依赖和构建环境都留在服务器上,本地电脑只负责连接终端。
本文以 Ubuntu 22.04/24.04、Debian 12 为例,完成一套可复用的配置:普通用户、官方安装、无桌面认证、项目权限限制和 tmux 会话恢复。Claude Code 的官方系统要求是 4GB 以上内存、x64 或 ARM64 处理器,并且需要能访问 Anthropic 服务的网络环境。
| 使用场景 | 建议配置 | 说明 |
|---|---|---|
| 阅读代码、改小脚本 | 2 核 / 4GB / 40GB SSD | 满足官方最低内存要求,适合单仓库 |
| Node.js、Python 项目构建 | 4 核 / 8GB / 80GB NVMe | 给依赖安装、测试和编译留余量 |
| 多仓库、Docker、数据库并行 | 4-8 核 / 16GB / 120GB NVMe | 避免构建任务争抢内存和 IO |
1GB 或 2GB 内存的 VPS 即使能启动安装程序,也容易在 npm install、TypeScript 编译或 Docker 构建时 OOM。预算有限时可以先选 4GB,并给系统预留至少 10GB 磁盘空间。
先用 SSH 登录并更新系统:
ssh root@YOUR_SERVER_IP
apt update && apt full-upgrade -y
apt install -y ca-certificates curl git tmux ripgrep sudo
不要让 AI 工具长期以 root 身份运行。创建专用账号和工作目录:
adduser coder
usermod -aG sudo coder
mkdir -p /srv/workspaces
chown -R coder:coder /srv/workspaces
su - coder
接着确认网络和时间正常:
curl -I https://code.claude.com
timedatectl status
如果 SSH 本身出现 Permission denied,先按 VPS SSH Permission denied 排查清单 检查密钥、用户和目录权限,再继续安装。
在 coder 用户下执行官方 Linux 安装命令:
curl -fsSL https://claude.ai/install.sh | bash
重新加载 shell 配置并检查版本:
export PATH="$HOME/.local/bin:$PATH"
claude --version
claude doctor
官方原生安装会自动更新。如果服务器需要固定版本或稳定通道,可以安装 stable:
curl -fsSL https://claude.ai/install.sh | bash -s stable
不要把 curl 下载内容保存到项目仓库,也不要用 sudo 把 Claude Code 安装到 root 的用户目录。若提示 claude: command not found,先检查 echo $PATH 和 ls -l ~/.local/bin/claude。
在项目目录启动 Claude Code:
mkdir -p /srv/workspaces/demo
cd /srv/workspaces/demo
claude
首次运行会显示授权地址。复制到本地浏览器完成 Claude Pro、Max、Team、Enterprise 或 Console 账号登录,然后回到 SSH 会话。无桌面 VPS 不需要安装浏览器,关键是保持终端连接直到授权完成。
自动化任务可以使用 ANTHROPIC_API_KEY。不要把 Key 直接写进命令行历史或 Git:
read -s ANTHROPIC_API_KEY
export ANTHROPIC_API_KEY
claude
unset ANTHROPIC_API_KEY
若要给固定脚本使用,建立仅当前用户可读的凭据文件:
install -m 600 /dev/null ~/.config/claude.env
printf 'ANTHROPIC_API_KEY=replace-me\n' > ~/.config/claude.env
set -a
. ~/.config/claude.env
set +a
把 ~/.config/claude.env 加入备份排除列表和项目的 .gitignore。换 Key 时直接覆盖文件并执行 chmod 600 ~/.config/claude.env。
把仓库放在 coder 可写、其他服务不可写的位置:
cd /srv/workspaces
git clone YOUR_REPOSITORY_URL demo
sudo chown -R coder:coder demo
cd demo
可以在项目内创建 .claude/settings.json,为高风险命令要求确认,并拒绝读取密钥目录:
{
"permissions": {
"allow": [
"Read(./**)",
"Edit(./**)",
"Bash(git status)",
"Bash(git diff)",
"Bash(npm test)"
],
"ask": [
"Bash(git push*)",
"Bash(docker *)",
"Bash(rm *)"
],
"deny": [
"Read(~/.ssh/**)",
"Read(~/.config/claude.env)",
"Bash(curl * | bash*)"
]
}
}
规则应当按项目实际命令调整。不要为了省确认步骤而启用全自动高权限模式;生产 VPS 上至少保留 Git 提交、删除、Docker 和网络下载的人工确认。
交互式开发最适合放在 tmux 中:
tmux new -s claude-demo
cd /srv/workspaces/demo
claude
按 Ctrl+b,再按 d 可脱离会话;重新连接 VPS 后恢复:
tmux ls
tmux attach -t claude-demo
需要继续上一次对话时,在仓库目录执行 claude --continue,或使用 claude --resume 选择会话。tmux 只保证终端进程不断开,不会替你解决 VPS 重启后的自动恢复,也不适合无人值守地批准高风险变更。
确认服务器 DNS、系统时间和出口防火墙:
curl -v https://claude.ai/install.sh
getent hosts claude.ai
如果企业代理替换了证书,需要按官方网络配置文档导入 CA,不要用 curl -k 绕过 TLS 校验。
command -v claude
ls -l ~/.local/bin/claude
echo $PATH
将 export PATH="$HOME/.local/bin:$PATH" 加到 ~/.bashrc 后重新登录。确认安装和运行使用的是同一个 Linux 用户。
检查当前用户和环境变量:
whoami
env | grep '^ANTHROPIC_API_KEY=' | cut -c1-12
claude doctor
root 和 coder 的配置目录不同,不能用 root 登录后再切换用户运行。
free -h
dmesg -T | grep -i -E 'oom|killed process'
先停止无关服务、降低并行构建数;如果仍然 OOM,升级到 8GB 内存。swap 只能缓解峰值,不能替代实际内存。
- Claude Code 使用普通用户运行,工作目录不放 SSH 私钥、数据库备份和生产密钥。
- API Key 文件权限为
600,没有提交到 Git,也没有写进 shell 历史。 - SSH 仅允许密钥登录,防火墙只开放必要端口,管理端口不对公网全开放。
- 项目
.claude/settings.json对git push、rm、Docker 和外部下载保留确认。 - 每次大改动前先建立 Git 分支或提交点,完成后检查
git diff和测试结果。 - 监控磁盘、内存和出站流量;Docker 项目还应设置 healthcheck 和资源上限,可参考 VPS Docker Compose 生产环境配置清单。
如果你已经在 VPS 上使用 Codex CLI 远程开发环境,Claude Code 的部署思路基本一致:普通用户、明确的认证边界和 tmux 会话是稳定性的核心;差别主要在账号体系、API Key 名称和权限配置文件格式。
一台 4GB 起步的 Linux VPS 就能承载 Claude Code 的远程开发工作流。先用官方安装器和普通用户完成最小配置,再按项目需要增加权限规则、tmux 会话和监控。把认证信息与生产目录隔离,远比单纯追求更大的 CPU 更重要。
