sublime text 4(build 41xx)必须装sftp-next,st3(build 3xxx)用wbond原版sftp;sftp-config.json须通过右键项目根目录→sftp→map to remote…自动生成,手建无效,且装插件后必须重启。

ST4 还是 ST3?先看 Build 号再装插件
Sublime Text 4(Build 41xx)装原版 SFTP 插件会直接报 ImportError: No module named 'urllib3',菜单也不出现;必须装 SFTP-Next。Sublime Text 3(Build 3xxx)才能用作者 wbond 的原版 SFTP。
按 Help → About Sublime Text 看清楚 Build 号:4143 是 ST4,3211 是 ST3。装错就白忙——命令面板搜不到、右键没 SFTP 菜单、重启也没用。
- ST4 用户:Ctrl+Shift+P →
Package Control: Install Package→ 搜SFTP-Next - ST3 用户:同上操作,搜
SFTP,认准作者wbond,别选sftp-client或FTPSync - 装完必须重启 Sublime,否则插件不初始化,
Project菜单里压根看不到 SFTP 项
sftp-config.json 必须绑定到项目根目录,不能手建
这个文件不是全局配置,也不是放哪都行的“设置”。它只对“你右键的那个文件夹”生效,且必须由 Sublime 自动生成,路径、命名、字段全错不得。
正确做法:在侧边栏右键本地项目根文件夹 → SFTP → Map to Remote…。它会自动创建 sftp-config.json 并写入当前目录。手动新建、改名、挪位置,插件一律静默忽略——不报错,也不连。
- 文件名必须是
sftp-config.json(全小写、无空格、无额外后缀) -
host填局域网 IP(如192.168.1.100),别带ssh://;端口单独写port字段 -
remote_path必须以/开头,结尾建议加/(如/var/www/html/),否则路径拼接偏移 - 密钥登录时,删掉
password字段;private_key值必须是绝对路径(/home/user/.ssh/id_rsa或C:/Users/User/.ssh/id_rsa),且权限为600
upload_on_save 不生效?检查三件事
设了 "upload_on_save": true 却没上传,不是插件坏了,而是 Sublime 根本没把当前文件识别为“该同步的文件”。它只认“已映射项目内”的文件。
- 当前编辑的文件必须在侧边栏那个被右键过的文件夹及其子目录下;打开桌面一个
.js文件,哪怕同名配置存在,也完全不触发 - 确保项目已通过
Project → Add Folder to Project加入侧边栏顶层,不是“Open Folder”临时视图 -
upload_on_save是布尔值,写成"true"(字符串)或留空都会失效;必须是true(无引号)
局域网多测试机部署时,建议每台机器对应一个独立本地项目文件夹 + 单独的 sftp-config.json,避免 ignore_regexes 或路径冲突。
局域网热部署容易卡在 SSH 认证和路径映射
局域网环境看似简单,但常见问题集中在 SSH 层:服务器默认禁密码登录、私钥权限不对、remote_path 和本地结构不一致导致文件传错位置。
- 确认目标测试机
/etc/ssh/sshd_config中PasswordAuthentication yes(如果用密码)或PubkeyAuthentication yes(如果用密钥) - Windows 上私钥路径用正斜杠
C:/Users/Me/.ssh/id_rsa更稳,反斜杠容易被 JSON 解析吃掉 - 本地开发目录结构尽量与
remote_path对齐;比如远程是/var/www/html/app/,本地就建project/app/,而不是project/src/app/ - 首次连接会弹出主机验证提示,点“Yes”;后续若 IP 变更或重装系统,需删掉
~/.ssh/known_hosts对应行,否则 Connection refused
真正麻烦的不是配一次,而是每换一台测试机就要重走一遍绑定流程——sftp-config.json 必须一对一,且任何字段偏差都会导致静默失败,没有日志提示,只能靠排除法。











