SFTP插件在Package Control中需搜SFTP或sftp3,ST4必须用sftp3(原版SFTP已停止更新且不兼容),配置文件sftp-config.json须置于项目根目录、字段严格匹配,upload_on_save仅对右键映射的目录内文件生效。

SFTP 插件不能通过“FTP”关键词搜到,Package Control 里搜 SFTP 或 sftp3 才对;ST4 用户必须用 sftp3,否则菜单不出现、上传无响应。
为什么 Package Control 搜不到 SFTP
不是网络问题,也不是插件下架了——是 Sublime Text 4 默认禁用未签名插件,而原版 SFTP(作者 wbond)早在 2021 年就停止更新,最新兼容版是 v3.4.3,但 Package Control 搜索 SFTP 会返回失效分支或报错。
- ST3(Build 3xxx,如 3211):搜
SFTP,认准作者 wbond 那个 - ST4(Build 41xx,如 4143):必须搜
sftp3,这是社区持续维护的分支,支持 Python 3.8+ 和 ST4 的插件签名机制 - 搜
FTP或ftpsync会装错插件——前者是旧版不维护的 FTP-only 工具,后者不支持upload_on_save
sftp-config.json 必须放对位置、写对字段
配置文件名必须是 sftp-config.json(全小写、无空格、无后缀),且只能放在「已绑定的项目根目录」下;放错位置或字段名拼错,插件静默失败,连错误提示都不给。
- 路径必须是项目侧边栏最顶层文件夹的根目录,不能在子文件夹或
Packages/User/下 -
host填域名或 IP,别带ssh://;端口单独写port字段,默认 22 -
remote_path必须以/开头,结尾也建议加/(如"/var/www/html/"),否则路径拼接会错位 - 用密钥登录时,删掉
password字段,改用private_key(ST4)或ssh_key_file(ST3),值必须是绝对路径:"/home/you/.ssh/id_rsa",且权限得是600
upload_on_save 不生效?先确认项目是否真正绑定
装完插件 ≠ 能自动上传。Sublime 不会监听任意打开的文件夹,它只对「通过 Project 加载并右键映射过的目录」生效。
- 必须先通过
Project → Add Folder to Project把本地目录加入项目,让它显示在侧边栏顶层 - 然后在侧边栏该文件夹图标上右键 →
SFTP → Map to Remote…,它才会自动生成sftp-config.json并绑定路径 -
"upload_on_save": true必须写在配置文件最外层,不是嵌套在sync_options之类里 - 当前编辑的文件必须位于已映射目录内;如果打开的是桌面单个
index.html,哪怕同名同内容,也不会触发上传
连接失败常见错误和对应字段
输出面板没报错、右键菜单灰掉、点 Upload 没反应——这些问题基本都卡在 SSH 层,不是 JSON 语法错,而是认证或路径配置偏移。
-
Connection refused:检查host和port是否可达,服务器防火墙是否放行 22 端口 -
Permission denied (publickey):ssh_key_file路径错、权限不是600、或服务器sshd_config里PasswordAuthentication no但你又没配密钥 - 上传后文件出现在奇怪路径(比如
/var/www/html/src/js/app.js变成/var/www/html//src/js/app.js):remote_path结尾漏了/,导致双斜杠拼接 - 中文文件名乱码或报
remote_encoding错误:服务器 locale 未设为en_US.UTF-8或zh_CN.UTF-8
最容易被忽略的一点:Sublime 的「自动上传」本质是保存后调用一次 on_post_save_async 事件,不是实时监听文件系统。这意味着它无法处理外部程序改写文件、git checkout 切换分支等场景——那些时候得手动触发 SFTP → Upload File。


















