Cursor Remote-SSH 是什么
Cursor 的远程开发能力建立在 VS Code Remote - SSH 协议之上:本地只跑轻量客户端 UI,语言服务器、文件系统、终端进程全部在远端 Linux 机器上运行,体验上几乎与本地开发无异。
| 场景 | 是否适合 |
|---|---|
| 本地资源不够(编译慢、内存少) | ✅ 适合 |
| 需要在 Linux 调试但本机是 Windows/macOS | ✅ 适合 |
| 服务跑在远端,直接改代码不走 CI | ✅ 适合 |
| 远端机器在内网无公网 IP | ⚠️ 需跳板机或内网穿透 |
树莓派 / 虚拟机 / LXC / 阿里云 / 腾讯云 / AWS — ed25519 免密登录 → Remote-SSH 添加主机 → 远程 Composer Agent → 报错速查
通过邀请链接注册 Cursor,首月 Pro / Pro+ / Ultra 立享 5 折:
👉 立即注册(首月 5 折)Cursor 的远程开发能力建立在 VS Code Remote - SSH 协议之上:本地只跑轻量客户端 UI,语言服务器、文件系统、终端进程全部在远端 Linux 机器上运行,体验上几乎与本地开发无异。
| 场景 | 是否适合 |
|---|---|
| 本地资源不够(编译慢、内存少) | ✅ 适合 |
| 需要在 Linux 调试但本机是 Windows/macOS | ✅ 适合 |
| 服务跑在远端,直接改代码不走 CI | ✅ 适合 |
| 远端机器在内网无公网 IP | ⚠️ 需跳板机或内网穿透 |
ssh -V # macOS/Linux 通常已内置;Windows 10 1809+ 内置 OpenSSH
ssh-keygen -t ed25519 -C "[email protected]" # 路径直接回车使用默认 ~/.ssh/id_ed25519 cat ~/.ssh/id_ed25519.pub # 复制整行,后续写入远端 authorized_keys
不再推荐 -t rsa -b 2048:ed25519 在安全性和性能两个维度均优于 RSA 2048,且密钥文件更短。
首次连接新主机会弹出指纹确认。输入 yes 后指纹写入 ~/.ssh/known_hosts;Cursor Remote-SSH 在后台建立连接时同样触发此流程。
# 方式一:raspi-config sudo raspi-config # → Interface Options → SSH → Enable # 方式二:boot 分区放空文件(无头安装) touch /boot/ssh # 确认 SSH 监听 sudo systemctl status ssh sudo ss -tlnp | grep :22
建议在路由器设置 DHCP 静态绑定,把树莓派 MAC 地址绑定到固定 IP,避免重启后 IP 变化。
| 网卡模式 | 能否直接 SSH | 说明 |
|---|---|---|
| NAT(默认) | ⚠️ 需端口转发 | host:2222 → guest:22 |
| 桥接模式 | ✅ 直连 | 推荐,虚拟机获取同网段 IP |
| Host-Only | ⚠️ 仅宿主机 | 跨机器场景不适用 |
pct exec <容器ID> -- apt install openssh-server -y pct exec <容器ID> -- systemctl enable --now ssh
| 字段 | 值 |
|---|---|
| 协议 | TCP |
| 端口范围 | 22(或自定义端口) |
| 来源 IP | 你的本地公网 IP(最安全)或 0.0.0.0/0(调试期) |
# 方式 A — ssh-copy-id ssh-copy-id -i ~/.ssh/id_ed25519.pub user@your-server-ip # 方式 B — 手动复制(通过 web shell) mkdir -p ~/.ssh && chmod 700 ~/.ssh echo "粘贴你的公钥内容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
sudo nano /etc/ssh/sshd_config # PasswordAuthentication no # PubkeyAuthentication yes sudo systemctl restart sshd
在 ~/.ssh/config 里为每台服务器建立别名,Cursor Remote-SSH 会自动读取:
Host my-rpi HostName 192.168.1.88 User pi IdentityFile ~/.ssh/id_ed25519 Port 22 Host my-cloud HostName your-server-ip User ubuntu IdentityFile ~/.ssh/id_ed25519 Port 22 ServerAliveInterval 60 ServerAliveCountMax 3
ServerAliveInterval / ServerAliveCountMax 保活设置,防止长时间编辑后连接断开。
Host bastion HostName public-bastion-ip User ec2-user IdentityFile ~/.ssh/id_ed25519 Host private-server HostName 10.0.1.100 User ubuntu ProxyJump bastion IdentityFile ~/.ssh/id_ed25519
Cursor Remote-SSH 会自动走 ProxyJump 透明建立连接,使用体验与直连无异。
Ctrl+Shift+P(macOS:Cmd+Shift+P),搜索选择 Remote-SSH: Connect to Host…>< 图标 → Connect to Host~/.ssh/config 中已配置的别名(如 my-rpi)~/.cursor-server/),首次约 1-3 分钟,此后缓存秒开左下角状态栏显示 SSH: my-cloud 即表示当前工作在远端。终端执行:
hostname && uname -a
看到服务器名称确认无误。
~/projects/ my-api/ # Git 项目 my-scripts/ # 独立运维脚本 tmp/ # 临时实验,不提交
打开远端目录后,所有文件操作(创建、编辑、保存)直接发生在远端,无需手动同步。
tail -f /var/log/nginx/access.log sudo systemctl restart my-app git pull && npm run build
实测建议:在远端启动 tmux / screen 跑长任务(编译、测试),即使 Cursor 断开连接任务仍在后台运行。
# 检查权限 ls -la ~/projects/my-api # 修正(谨慎在生产使用) sudo chown -R $USER:$USER ~/projects/my-api
Cursor 里保存文件时弹出"没有权限",通常是文件由 root 创建而当前用户无写权限。
| 操作 | 可行性 | 说明 |
|---|---|---|
| 用 Chat 分析远端日志文件 | ✅ 完全可行 | @引用远端文件,本地网络出口 |
| 用 Cmd+K 改远端代码 | ✅ 完全可行 | 同上 |
| 用 Composer 批量改远端多文件 | ✅ 完全可行 | 工作区在远端,操作自然落远端 |
| 用 Background Agent 在远端机上跑长任务 | ⚠️ 需远端外网 | Agent 云端发起,远端机需能访问 API |
目标:帮我在这台远端 Linux 机器上写一个部署脚本 deploy.sh,
完成「拉取最新代码 → 安装依赖 → 构建 → 重启服务」全流程。
约束:
1. #!/bin/bash,出错立即退出(set -e)
2. 目标项目在 ~/projects/my-api,构建命令 npm run build
3. 服务管理使用 systemd,单元名 my-api.service
4. 脚本末尾输出"Deploy done at $(date)"
5. 不要硬编码任何密码或 token
验收:bash deploy.sh 可执行;systemctl status my-api 显示 active (running)
@nginx.conf 帮我检查这份 Nginx 配置有没有可能导致 502 的写法
Cursor 会读取远端文件内容后再给出回答,不需要把文件复制到本地。
根因:服务器没有你的公钥,或公钥路径 / 权限有问题。
# 1. 确认私钥可用 ssh-add -l # 若无输出:ssh-add ~/.ssh/id_ed25519 # 2. 检查远端 authorized_keys 权限(关键) chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys # 3. 开启详细日志 ssh -vvv user@host 2>&1 | grep -i "key\|auth"
根因:SSH 服务未启动,或端口不对,或安全组未放行。
# 在远端(通过 web shell) sudo systemctl status sshd sudo systemctl enable --now sshd sudo ss -tlnp | grep sshd # 若有 ufw sudo ufw allow 22/tcp
云服务器还需在控制台安全组入方向规则确认 22 端口已开放。
根因:服务器重装系统或 IP 被复用,known_hosts 指纹与当前不匹配。
# 删除旧指纹 ssh-keygen -R your-server-ip # 重新连接,输入 yes 接受新指纹 ssh user@your-server-ip
通过邀请通道注册 Cursor,首月 Pro / Pro+ / Ultra 立享 5 折——Pro 仅需 $10、Pro+ 仅需 $30、Ultra 仅需 $100。
👉 立即开通(首月 5 折)邀请通道仅对首月生效,次月起恢复原价;可随时取消订阅。