Sublime Text 本身不支持远程连接,所有功能依赖 SFTP 插件;90% 失败源于版本错配(ST4 必须用 SFTP-Next,ST3 用 wbond 原版)、未重启、或 sftp-config.json 未通过右键“Map to Remote…”在项目根目录自动生成。

Sublime Text 本身不支持远程连接,所谓“连上服务器”全是 SFTP 插件在后台干活;装错版本、没重启、配置没绑到项目根目录——这三件事占了 90% 的失败。
怎么确认该装 SFTP 还是 SFTP-Next
打开 Help → About Sublime Text,看 Build 号:
- Build 41xx(如 4143)→ 必须装 SFTP-Next;装原版会报 ImportError: No module named 'urllib3',菜单直接消失
- Build 3xxx(如 3211)→ 只能装作者为 wbond 的原版 SFTP;搜到 sftp-client 或 FTPSync 都是错的
- 安装后必须重启 Sublime Text,否则 Project 菜单里看不到 SFTP,右键也无响应
sftp-config.json 必须由右键生成,不能手建
插件只认「右键项目根目录 → SFTP/FTP → Map to Remote…」这一步触发的配置文件。手动新建一个 sftp-config.json,哪怕内容完全正确,也会被静默忽略:
- 先通过 Project → Add Folder to Project 把本地项目加进侧边栏(确保它是顶层文件夹)
- 右键这个文件夹图标本身 → SFTP/FTP → Map to Remote…,自动生成配置并绑定路径
- 文件名必须是 sftp-config.json(全小写、带连字符、.json 小写),不能是 SFTP-config.json 或 sftp_config.json
- 必须放在你右键的那个文件夹根目录下,不能在子目录、不能放错位置
host/user/remote_path 缺一不可,认证字段不能共存
漏掉 host、user 或 remote_path,直接报 Connection failed: Invalid config;更隐蔽的问题出在认证字段冲突:
- 服务器禁密码登录(PasswordAuthentication no)?那就不能填 password,必须用 private_key(ST4)或 ssh_key_file(ST3),值必须是绝对路径:/home/you/.ssh/id_rsa 或 C:/Users/You/.ssh/id_rsa
- private_key 或 ssh_key_file 文件权限不是 600(Linux/macOS 下执行 chmod 600 ~/.ssh/id_rsa)→ 认证失败,但错误信息只显示 Authentication failed
- 同时写了 password 和 private_key → SSH 层直接拒绝连接,不会提示具体原因
- remote_path 必须以 / 开头,结尾建议也加 /(如 "/var/www/html/"),否则路径拼接会偏移
upload_on_save 不生效?检查项目绑定和路径范围
upload_on_save 只对已映射目录下的文件生效,不是全局开关:
- 必须设为布尔值 true,不能写成字符串 "true",也不能缩进在 files 或 sync_down_on_open 下面
- 当前文件必须在已映射的本地项目目录内及其子目录下;编辑桌面一个 index.js,哪怕同目录有 sftp-config.json,也不会上传
- 网络抖动或服务器响应慢时,默认 3 秒超时会静默失败;可在配置里加 "timeout": 10 提高容忍度
- 如果服务器上目标路径不存在,upload_on_save 会静默失败,不会报错,建议先手动 mkdir -p 创建好
真正卡住人的从来不是配置语法,而是 Sublime 对“项目上下文”的强依赖——它不认你打开的任意文件,只认你右键绑定的那个文件夹;也不复用终端里的 ssh-agent,每次都是全新调用系统 ssh 命令。稍有松动,就静默失效。


















