Sublime Text不支持原生SSH远程编辑,仅能通过SFTP插件同步文件或rsub反向隧道触发本地打开;右键无SFTP菜单主因是未将本地文件夹通过Project→Add Folder to Project加入项目并置于侧边栏顶层,且ST4必须用SFTP-Next插件并重启。

Sublime Text 不能直接 SSH 远程编辑,所谓“连接”只有两种可落地的路径:SFTP 插件同步文件,或 rsub 反向隧道触发本地打开——选错方案或配置错位置,右键根本不会出现 SFTP 菜单,subl user@host:/path 这类命令也必然失败。
为什么右键没有 SFTP 菜单
不是插件没装,是 Sublime 没识别出“这是一个可映射的项目”。必须满足三个硬性条件:
- 通过 Project → Add Folder to Project 把本地文件夹加入项目,且该文件夹图标要出现在侧边栏最顶层
- 右键对象只能是那个文件夹图标本身,不能是里面某个
.js文件,也不能是侧边栏空白处 - Sublime Text 4(Build 41xx)必须装
SFTP-Next,原版SFTP会报ImportError: No module named 'urllib3'
装完插件后务必重启 Sublime Text,否则 Project 菜单里都看不到 SFTP 项。
sftp-config.json 必须严格按规则生成和放置
这个文件不是手动创建的全局配置,而是插件只读取“右键 → Map to Remote…”后自动生成在项目根目录下的唯一凭证。常见错误包括:
- 文件名大小写敏感:
sftp-config.json(不能是SFTP-config.json或sftp_config.json) -
remote_path必须以/开头,结尾建议也加/(如"/var/www/html/"),否则路径拼接会偏移 -
ssh_key_file支持~展开(如"~/.ssh/id_rsa"),但不识别$HOME或其他环境变量 - 同时写了
password和ssh_key_file?SSH 层直接拒绝,错误只显示Authentication failed,无具体提示
upload_on_save 不生效的四个隐藏条件
开关开着 ≠ 自动上传,它依赖一组隐性上下文:
-
upload_on_save必须放在配置文件根层级,不能嵌套在files或sync_down_on_open下面 - 当前文件必须属于已保存的项目(即存在
.sublime-project文件) - 该文件路径需能被
remote_path规则覆盖(比如配了"/var/www/html/",但你在/src/index.js编辑,就不会上传) - 默认 3 秒超时太短,网络抖动时静默失败;可在配置中加
"timeout": 10提高容错
rsub 反向隧道的启动链不能断
远程执行 rsub file.py 后没反应?大概率是隧道没通。关键点在于:
- 远程终端必须先运行
ssh -R 52698:localhost:52698 -Nf user@your_local_ip(注意是连你本地机器的 IP,不是localhost) - 本地 Sublime 必须已安装
rsub插件,且状态栏右下角显示rsub: ready - 远程执行
rsub时,当前工作目录要有目标文件读权限;若编辑/var/log/nginx/access.log,得用sudo rsub /var/log/nginx/access.log -
ssh_key_file要写绝对路径,~/.ssh/id_rsa不生效,得写成/home/user/.ssh/id_rsa
remote_path 不支持波浪号,sync_down_on_open 设为 true 很危险——双击远程文件时自动覆盖本地副本,协作中极易丢代码。











