CURSOR离线安装到server-无网安装 2026.04亲测有效
本文介绍了在离线Linux服务器上安装Cursor Remote-SSH的详细方法。主要内容包括:通过本机下载Cursor的Blob包(包括CLI和Server组件),使用scp传输到服务器,并按官方目录结构解压到指定路径(如~/.cursor-server/bin/linux-x64/<commit>)。文章提供了自动安装脚本install.sh的使用说明,支持x64和arm64架构
Cursor Remote-SSH 离线安装:本机包、官方目录与脚本安装
你可以扔给Cursor本地的Agent让他帮你完成
在无公网或下载极慢的 Linux 服务器上使用 Cursor 的 Remote-SSH,常见做法是:在本机(能上网)按当前 Cursor 版本下载两份 Blob 包 → scp 到服务器 → 解压到官方期望的目录。本文与仓库内 install.sh 行为一致,所有主机名、用户名、IP、版本号和 commit 均使用占位符,实际执行时请替换成自己的环境信息。
背景与目标
- Cursor 连接远端时会安装 cursor server(reh 包)和 CLI(
cli-alpine等),默认从网络拉取;离线环境会卡住或反复失败。 - 目标:在
~/.cursor-server下摆出与 Cursor 自带安装脚本(anysphere Remote-SSH 引导逻辑)一致的目录,使客户端能直接启动node/bin/cursor-server,而不再去下载。
版本与 commit 从哪来
在本机已安装的 Cursor 终端执行:
cursor --version
典型输出为三行(示例含义):
- 语义化版本(如
<CURSOR_VERSION>)→ 对应下文CURSOR_VERSION - 40 位十六进制 commit → 对应下文
CURSOR_COMMIT(与远端目录名、下载 URL 强相关) - 本机架构(如
x64)→ 仅说明本机;服务端包名要看远端 Linux 的 CPU 架构(脚本通过ssh执行uname -m判断x64/arm64)。
若在无 cursor 命令的环境跑脚本,可手动导出。下面是占位示例,请使用你本机 cursor --version 查到的真实值:
export CURSOR_VERSION=<CURSOR_VERSION>
export CURSOR_COMMIT=<40位CURSOR_COMMIT>
COMMIT_ID 与 CURSOR_COMMIT 等价,任设其一即可。
官方目录结构(与 install.sh 一致)
Remote 侧数据目录一般为 $HOME/.cursor-server(即环境变量里的 agent 目录)。reh 主程序应落在:
~/.cursor-server/bin/<platform>-<arch>/<40位commit>/
在常见 glibc Linux、x86_64 上即为:
~/.cursor-server/bin/linux-x64/<commit>/
其中应包含解压后的 node、bin/cursor-server 等(由 vscode-reh-*.tar.gz 带 --strip-components=1 解压得到)。
另外需存在(可为空目录,供运行时写入):
~/.cursor-server/bin/multiplex-server/
同时脚本会创建(与部分历史文档/插件行为兼容):
~/.cursor-server/cli/servers/Stable-<commit>/server/
~/.cursor-server/cli/.cli.json # 内含 "commitId"
CLI 可执行文件放在家目录数据根下,命名为:
~/.cursor-server/cursor-<commit>
常见误区:早期教程把 reh 直接解压到 bin/<commit>/(缺少 linux-x64 这一层)。当前官方清理/探测逻辑区分「旧式 bin/<commit>」与「新式 bin/linux-x64/<commit>」;路径不对时,客户端可能认为未安装成功,再次清空 bin 并尝试重新下载。因此建议与本文及 install.sh 保持一致。
在本机下载哪两个文件
以下地址中的 <CID> 为 40 位 commit;带版本号的 reh 也可用 CURSOR_VERSION-CURSOR_COMMIT 形式(与 Blob 实际路径一致即可)。
CLI(Alpine x64,教程里常用文件名):
https://cursor.blob.core.windows.net/remote-releases/<CID>/cli-alpine-x64.tar.gz
Server(reh,注意 linux-x64 / linux-arm64 与远端一致):
https://cursor.blob.core.windows.net/remote-releases/<CURSOR_VERSION>-<CID>/vscode-reh-linux-x64.tar.gz
将下载得到的文件放到与 install.sh 同一目录,并尽量使用脚本能自动识别的文件名,例如:
vscode-reh-linux-x64.tar.gz或vscode-reh-linux-arm64.tar.gz- 或
cursor-vscode-server.tar.gz(脚本会作为候选文件名) cli-alpine-x64.tar.gz或cursor-cli.tar.gz
一键安装:install.sh
前提:本机可以通过 SSH 访问目标 Linux 服务器。下面统一用 <SSH_HOST> 表示目标主机,它可以是:
~/.ssh/config中配置好的Host别名,例如my-linux-server- 直接写
user@ip,例如deploy@192.0.2.10
建议先在本机单独验证 SSH 是否可用:
ssh <SSH_HOST> 'echo "$HOME"; uname -m'
如果能输出远端家目录和 CPU 架构,说明脚本后续的 ssh / scp 基本可用。
如果没有配置免密登录
未配置 SSH key 免密登录也可以执行,但脚本中会多次调用 ssh 和 scp,因此你会被要求多次输入远端用户密码。这不是脚本卡住,而是 SSH 在等待密码输入。
执行前请确认:
- 目标服务器允许密码登录。
- 你知道远端用户名、IP、端口和密码。
- 第一次连接时若提示
Are you sure you want to continue connecting (yes/no/[fingerprint])?,确认指纹无误后输入yes。
示例:
ssh user@192.0.2.10
如果服务器不是默认 22 端口,或需要指定私钥文件,建议写入 ~/.ssh/config,再把 Host 别名传给脚本。示例:
Host my-linux-server
HostName 192.0.2.10
User user
Port 2222
IdentityFile ~/.ssh/id_ed25519
然后验证:
ssh my-linux-server 'echo "$HOME"; uname -m'
再执行安装脚本时使用 my-linux-server 即可。脚本参数不适合直接传 -p 2222 这类 SSH 选项,端口、用户名、私钥等请优先放到 ~/.ssh/config。
在放有压缩包与脚本的目录执行:
chmod +x install.sh
./install.sh <SSH_HOST> # 远端目录默认为远端用户的 ~/.cursor-server
./install.sh <SSH_HOST> '/home/<USER>/.cursor-server' # 显式指定远端绝对路径(可选)
脚本会依次:
- 通过
ssh读取远端$HOME与uname -m,确定linux-x64或linux-arm64。 - 从本机
cursor --version(或环境变量)读取CURSOR_VERSION/CURSOR_COMMIT。 - 在远端创建
bin/linux-*/<commit>、bin/multiplex-server、cli/servers/Stable-*/server等目录。 scp两个压缩包到远端临时目录.upload/<commit>/。- 在远端:reh 解压到
bin/<platform>-<arch>/<commit>/(--strip-components=1);CLI 解压到~/.cursor-server根下并改名为cursor-<commit>;写入cli/.cli.json;删除临时包。
完成后终端会打印 reh 目录与 CLI 路径,便于核对。
手工安装对照(与脚本等价)
若不用脚本,可以按下面步骤手工安装。远端路径请使用 绝对路径 或 $HOME,不要写 root/.cursor-server 这种缺少前导 / 的相对路径(在子目录执行时会解析错)。
1. 在本机上传安装包
下面仍以 x86_64 远端为例。若远端是 ARM64,请把 server 包换成 vscode-reh-linux-arm64.tar.gz,并把后续路径中的 linux-x64 改为 linux-arm64。
ssh <SSH_HOST> 'mkdir -p "$HOME/.cursor-server"'
scp vscode-reh-linux-x64.tar.gz <SSH_HOST>:'$HOME/.cursor-server/cursor-vscode-server.tar.gz'
scp cli-alpine-x64.tar.gz <SSH_HOST>:'$HOME/.cursor-server/cursor-cli.tar.gz'
如果没有免密登录,上面每条命令都可能要求输入密码。
2. 在远端解压到官方目录
COMMIT=<40位CURSOR_COMMIT>
tar -xzf "$HOME/.cursor-server/cursor-cli.tar.gz" -C "$HOME/.cursor-server"
mv "$HOME/.cursor-server/cursor" "$HOME/.cursor-server/cursor-$COMMIT"
mkdir -p "$HOME/.cursor-server/bin/linux-x64/$COMMIT" "$HOME/.cursor-server/bin/multiplex-server"
mkdir -p "$HOME/.cursor-server/cli/servers/Stable-$COMMIT/server"
tar -xzf "$HOME/.cursor-server/cursor-vscode-server.tar.gz" \
-C "$HOME/.cursor-server/bin/linux-x64/$COMMIT" --strip-components=1
3. 写入 CLI commit 信息并检查文件
mkdir -p "$HOME/.cursor-server/cli"
printf '%s\n' '{"commitId":"'"$COMMIT"'"}' > "$HOME/.cursor-server/cli/.cli.json"
chmod +x "$HOME/.cursor-server/cursor-$COMMIT" \
"$HOME/.cursor-server/bin/linux-x64/$COMMIT/node" \
"$HOME/.cursor-server/bin/linux-x64/$COMMIT/bin/cursor-server"
ls -l "$HOME/.cursor-server/cursor-$COMMIT"
ls -l "$HOME/.cursor-server/bin/linux-x64/$COMMIT/node"
ls -l "$HOME/.cursor-server/bin/linux-x64/$COMMIT/bin/cursor-server"
ARM64 远端将路径中的 linux-x64 改为 linux-arm64,并下载 vscode-reh-linux-arm64.tar.gz。
若你曾按旧文装在 bin/<commit>/,可迁到官方路径(示例):
COMMIT=<40位CURSOR_COMMIT>
mkdir -p "$HOME/.cursor-server/bin/linux-x64"
mv "$HOME/.cursor-server/bin/$COMMIT" "$HOME/.cursor-server/bin/linux-x64/$COMMIT"
连接后仍被删 bin、反复下载 tar
多见于装错了 Remote - SSH 扩展来源:请使用 Cursor 自带的 anysphere.remote-ssh,避免使用 VS Code 市场里的 Microsoft 版 Remote-SSH,否则可能与目录约定不一致,表现为反复清空 bin 后重新拉包。社区经验中会卸载再安装与当前 Cursor 匹配的扩展版本,具体以你当前 Cursor 版本说明为准。
客户端侧可适当加大超时、并开启本地下载再上传(按需在 settings.json 中配置 remote.SSH.connectTimeout、remote.SSH.localServerDownload 等)。
参考与致谢
- 离线思路与 Blob 路径:社区多篇「Cursor SSH 手动安装 / 无网络」类文章。
- 目录层级以对 Cursor 官方 Remote 安装脚本(
SERVER_DIR=$HOME/.cursor-server/bin/$PLATFORM-$SERVER_ARCH/<commit>)为准,本文与install.sh已与之对齐。
仓库内脚本路径:cursor/install.sh。若 Blob 域名或路径随版本变更,请以 Cursor 官方或当前连接日志中的 URL 为准。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)