sublime text远程同步依赖sftp插件、项目绑定和正确配置三者缺一不可;build 41xx须装sftp-next,3xxx装wbond原版;sftp-config.json必须通过右键“map to remote…”在项目根目录自动生成,且host、user、remote_path必填,upload_on_save设为true(布尔值)并确保文件位于映射目录内。

Sublime Text 本身不支持远程同步,所谓“连上服务器”全是 SFTP 插件在后台用 SSH 建立加密通道完成;装对插件、绑对项目、配对认证——三者缺一,upload_on_save 就是摆设,不会上传,也不报错。
怎么确认该装 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_op下 - 当前文件须在已映射的项目文件夹内及其子目录下;打开桌面一个
index.js,哪怕同目录有sftp-config.json,也不会上传 - 改完
sftp-config.json后,需右键文件 →SFTP → Reconnect才生效 - 网络抖动或服务器响应慢时,默认 3 秒超时会静默失败;可在配置里加
"timeout": 10提高容忍度
真正卡住的往往不是配置写错了,而是 Project → Add Folder to Project 没做、右键对象不是文件夹图标、密钥权限没调、或者 upload_on_save 写在了嵌套层级里——这些细节不满足,插件就当没这回事,连日志都不打。











