Sublime Text原生不支持FTP,所有远程同步均由SFTP插件通过SSH加密通道实现;成功前提为:项目已通过Project→Add Folder to Project加入侧边栏顶层、sftp-config.json由右键Map to Remote自动生成于项目根目录、SSH认证有效。

Sublime Text 本身不支持 FTP,所谓“连接”全是 SFTP 插件在干活
别被“FTP”这个词带偏——Sublime Text 原生根本不支持 FTP 协议,也不支持任何远程文件系统挂载。你看到的“上传/下载/同步”,全靠 SFTP 插件在后台用 SSH 建立加密通道完成。它根本不是 FTP 客户端,而是 SFTP 客户端;填 ftp:// 或把 type 设为 "ftp",连接必然失败。
真正能跑起来的前提只有三个:项目已通过 Project → Add Folder to Project 加入侧边栏顶层、sftp-config.json 是右键该文件夹后自动生成的、SSH 认证(密钥或密码)在服务器上实际有效。
- 装错插件版本是第一大坑:Sublime Text 4(Build 41xx)必须装
SFTP-Next,装原版会直接报ImportError: No module named 'urllib3',菜单消失,插件形同虚设 - 装完不重启 Sublime,
Project菜单里压根不会出现SFTP项,右键也无响应 - 手动新建
sftp-config.json?插件静默忽略——它只认右键文件夹 → SFTP/FTP → Map to Remote…这一步生成的文件
sftp-config.json 放哪、怎么写、为什么总连不上
这个文件不是全局配置,也不是随便放哪都行的“设置”。它严格绑定到你右键的那个文件夹根目录下,且名字、大小写、路径一个都不能错:
- 文件名必须是
sftp-config.json(全小写、带连字符、.json 小写),SFTP-config.json或sftp_config.json都无效 -
remote_path必须以/开头,结尾建议也加/(如"/var/www/html/"),否则路径拼接会偏移,上传到奇怪位置 -
host、user、remote_path缺一不可,漏掉任意一个,直接报Connection failed: Invalid config - 认证字段不能共存:同时写了
password和private_key(ST4)或ssh_key_file(ST3),SSH 层直接拒绝,错误只显示Authentication failed,毫无提示 -
ssh_key_file值必须是绝对路径(如/home/you/.ssh/id_rsa或C:/Users/You/.ssh/id_rsa),支持~展开,但不识别$HOME等环境变量 - Linux/macOS 下密钥权限不是
600?执行chmod 600 ~/.ssh/id_rsa,否则认证失败
upload_on_save 不生效?不是开关没开,是上下文没对
upload_on_save 不是全局开关,它只对“已映射目录下的、属于当前项目的文件”生效。开开关 ≠ 自动传,关键看三件事是否同时满足:
- 必须设为布尔值
true,不能写成字符串"true",也不能缩进在files或sync_down_on_open下面——它得在配置文件根层级 - 当前文件必须属于已保存的项目(即存在
.sublime-project文件),且该文件路径能被remote_path规则覆盖(比如配了"/var/www/html/",但你在/src/index.js编辑,就不会上传) - 网络抖动或服务器响应慢时,默认 3 秒超时会导致静默失败;可在配置中加
"timeout": 10提高容错
别指望它做双向同步或冲突解决
这个插件本质是“本地编辑 → 保存 → 单向覆盖上传”,没有 diff、没有 merge、没有版本回滚。如果同事直接在服务器上改了文件,你本地保存会直接覆盖,不会提醒、也不会保留备份。
它适合的场景非常窄:单人维护、极简部署、服务器允许密码登录、防火墙放行 SSH 端口、且你接受“改完就推、不回头”的工作流。
真要团队协作或需要审计、回滚、多环境同步,rsync + git 或 Synced(Git-based)才是更稳的选择——SFTP 插件只是个快捷键替代品,不是生产级同步方案。

















