Sublime Text 远程开发需 SFTP/SFTP-Next 插件+项目绑定+sftp-config.json 正确配置三者缺一不可;Build 41xx 用 SFTP-Next,3xxx 用原版 SFTP;sftp-config.json 必须全小写、放项目根目录、字段零误差;upload_on_save 需 true 且文件在映射目录内;默认权限 600 可设 default_permissions:"644"。

Sublime Text 本身不支持 SFTP 远程开发,所谓“连接服务器”只是本地编辑 + 自动上传的模拟流程;能跑起来的关键不是插件装了没,而是项目已绑定、sftp-config.json 由右键 Map to Remote… 自动生成于项目根目录、SSH 认证正确,三者缺一不可。
怎么确认该装 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-config.json(全小写、无空格、无额外后缀),不能是SFTP-config.json、sftp_config.json或带空格 - 必须放在项目根目录下——即侧边栏最顶层那个文件夹里,不能在子目录,也不能在桌面或用户主目录
-
host填 IP 或域名,不要带ssh://;端口单独写port字段,别拼在host后面 -
remote_path必须以/开头,结尾建议也加/(如"/var/www/html/"),否则路径拼接会偏移 - 密钥登录时删掉
password字段,用private_key(ST4)或ssh_key_file(ST3),值必须是绝对路径:"/home/you/.ssh/id_rsa"或"C:/Users/You/.ssh/id_rsa";相对路径、~展开、权限非 600 都会导致Permission denied (publickey)
upload_on_save 不触发?检查这三个隐性前提
upload_on_save 是布尔值,必须写 true,不能写 "true" 字符串,也不能嵌套在 files 或 sync_down_on_open 下面:
- 当前文件必须在已映射的项目文件夹内及其子目录下;打开桌面一个
index.js,哪怕同目录有sftp-config.json,也不会上传 - 必须通过侧边栏右键本地文件夹 →
SFTP → Map to Remote…(或Setup Server)完成绑定;手动新建sftp-config.json不会自动激活映射 - 网络抖动或服务器响应慢时,默认 3 秒超时会静默失败;可在配置里加
"timeout": 10提高容忍度
上传后远程权限变成 600?
SFTP 插件默认用用户主目录权限掩码上传,web 目录通常需要 644(文件)或 755(目录),否则 Nginx/Apache 拒绝读取。可在 sftp-config.json 中显式设置:
"default_permissions": "644"
注意:这个字段值必须是字符串,不是数字;同时它只影响新上传文件,不修改已有文件权限。


















