背景 链接到标题
日常开发免不了频繁通过 VS Code 的 Remote SSH 连接远程服务器。每次都要敲:
code --remote ssh-remote+some-host /home/user/project
路径要记、主机名要打、目录要拼,烦。
能不能 rcode my-server 就完事?
其他方案对比 链接到标题
先看看除了敲命令,还有哪些方式打开 Remote SSH:
| 方案 | 操作步骤 | 评价 |
|---|---|---|
| VS Code 命令面板 | F1 → “Remote-SSH: Connect to Host…” → 选主机 → File > Open Folder → 选目录 |
点选四五次,慢 |
本地终端 code --remote |
code --remote ssh-remote+some-host /home/user/project |
可用,但路径要自己记 |
macOS open 打开 URL |
open vscode://vscode-remote/ssh-remote+some-host/home/user/project |
可脚本化,但路径写死 |
| Markdown/HTML 中放 VS Code 链接 | 在文档里写 vscode://vscode-remote/ssh-remote+some-host/home/user/project,浏览器点击触发 |
适合文档入口,但仍然路径写死 |
| 终端别名/函数 | 本文方案 | 一行搞定 |
这里容易踩一个坑:code 是本地 macOS 上的 VS Code CLI,不是远程服务器上的命令。已经 SSH 登录到远程机器后再敲 code .,通常只会得到 command not found。
rcode 函数 链接到标题
核心思路很简单:SSH 连上去问 home 目录在哪,然后丢给 code --remote。
rcode() {
local host="${1:-default}"
local home
home=$(ssh "$host" 'echo $HOME' 2>/dev/null) || home="~"
code --remote "ssh-remote+$host" "$home"
}
用起来就是:
rcode my-server # 连接 my-server 的 home 目录
rcode # 连接默认主机(SSH config 中名为 default 的主机)
没有硬编码的路径表,所有主机信息来自 ~/.ssh/config,增删主机无需改函数。
前置条件 链接到标题
- macOS 已安装 VS Code 及 Remote - SSH 插件
- 已将
code命令添加到 PATH:VS Code 内运行Shell Command: Install 'code' command in PATH ~/.ssh/config已配置目标主机,例如:
Host my-server
HostName my-server.example
User remote-user
IdentityFile ~/.ssh/id_ed25519
- SSH 免密登录已配置
一点说明 链接到标题
为什么不传固定路径?因为不同主机的 home 目录可能不同(/home/user、/home/ubuntu、/home/ecs-user……)。动态查询一劳永逸,换机器不用改函数。
default 是约定,在 SSH config 里配一个名为 default 的主机即可作为默认值,不传参时使用。
总结 链接到标题
一行函数,无配置依赖,和 SSH config 天然解耦。适合在本地 macOS 上频繁切换远程主机的开发场景。