Sublime Text 不支持原生 SSH 远程编辑,仅能通过 SFTP 插件(本地同步)或 rsub+反向隧道(命令转发)模拟;二者均非流式编辑,且依赖项目绑定、配置位置(sftp-config.json 必须位于项目根目录并严格命名)、认证方式(如仅用 ssh_key_file 或 password)三者同时满足。

Sublime Text 本身不支持原生 SSH 远程编辑,所有“远程编辑”都是本地编辑 + 同步/转发的模拟方案;能跑通的关键不是插件装没装,而是项目绑定、配置位置、认证方式三者是否同时满足。
为什么 subl user@host:/path 打不开远程文件
Sublime 的 subl 命令只解析本地路径和 file:// URL,完全忽略 SSH URI 格式。执行 subl user@server:/var/www/index.php 会静默失败或报 Unable to parse path——这不是配置问题,是内核根本不处理主机名前缀。
可行路径只有两条:
- SFTP 插件:把远程文件拉到本地临时副本,保存时上传,本质是同步
- rsub + 反向隧道:远程终端执行
rsub file.py,通过ssh -R触发本地 Sublime 打开,本质是命令转发
二者都不是 VS Code 那种进程级远程会话,也没有实时文件系统挂载。
sftp-config.json 必须放在项目根目录且名字严格匹配
这个文件不是全局配置,也不能手动创建或改名。SFTP 插件只读取通过右键 Map to Remote… 在项目根目录自动生成的 sftp-config.json。
常见失效原因:
- 文件名写成
SFTP-config.json、sftp_config.json或带空格 - 配置放在了子目录里,而不是项目最顶层文件夹下
-
remote_path没以/开头,比如写成"project"而非"/var/www/project/" - 写了
password又写了ssh_key_file,SSH 层直接拒绝,只报Authentication failed,无具体提示
upload_on_save 不生效?先确认这四件事
开关打开不代表自动上传,它依赖隐性上下文:
- 项目必须已保存为
.sublime-project文件,且当前文件属于该项目路径内 -
upload_on_save必须在配置顶层,不能嵌套在files或sync_down_on_open下面 - 当前文件路径需能被
remote_path规则覆盖(例如配了"/var/www/html/",但你在/src/app.js编辑,就不会上传) - 网络超时默认仅 3 秒,服务器响应慢时易静默失败;建议加
"timeout": 10
ST4 用户必须用 SFTP-Next,原版 SFTP 会报 ImportError
Sublime Text 4(Build 41xx 起)基于 Python 3.8+,而原版 SFTP 插件依赖已废弃的 urllib3 模块,启动即报 ImportError: No module named 'urllib3'。
解决方法只有:
- 卸载原版 SFTP
- 通过 Package Control 安装
SFTP-Next(注意名称带-Next) - 装完必须重启 Sublime Text,否则
Project菜单里都看不到 SFTP 相关项
另外,ssh_key_file 支持 ~ 展开(如 "~/.ssh/id_rsa"),但不识别 $HOME;私钥路径若含空格或中文,务必用双引号包裹。


















