Sublime Text 本身不支持 FTP/SFTP,必须通过 Package Control 安装 SFTP 插件(ST3 用 wbond 原版,ST4 用 SFTP-Next),并严格绑定项目、配置 sftp-config.json(全小写、放项目根目录、remote_path 以/开头、密钥路径绝对且权限 600)、启用 upload_on_save 布尔值且文件位于映射路径内,否则右键无菜单、保存不上传、连接静默失败。

Sublime Text 本身不带 FTP/SFTP 功能,所谓“远程同步”完全依赖 SFTP 插件——但它**不是 FTP 插件**,也不支持纯 FTP 协议(除非手动改 "type": "ftp",但极不稳定且已弃用)。你真正需要的是 SFTP 插件,且必须用 Package Control 安装、绑定项目、配对 SSH 认证,否则右键没菜单、保存不上传、配置静默失效。
为什么 Package Control 是唯一可行路径
手动解压 ZIP 到 Packages/ 目录会失败:插件依赖 urllib3 和初始化钩子,ST3/ST4 的插件加载机制只认 Package Control 注册的包。常见现象包括:
- 按
Ctrl+Shift+P输入SFTP没反应 → 实际是没装上,或装了但版本错(ST4 必须用SFTP-Next,ST3 只能用 wbond 原版) - 菜单里有
SFTP/FTP但点不开 → 没重启 Sublime;装完必须彻底退出再重开 - 右键文件夹无
SFTP → Map to Remote…→ 项目未加载,或当前视图只是“Open Folder”临时窗口,不是真正的 Project
sftp-config.json 放哪、怎么写、为什么总不生效
这个文件不是全局配置,它只对“被右键映射过的项目根目录”生效,且命名、位置、字段全错不得:
- 文件名必须是
sftp-config.json(全小写、无空格、无 BOM、UTF-8 编码),不能是SFTP-config.json或sftp_settings.json - 必须放在项目根目录下(即侧边栏最顶层那个文件夹里),不能在子目录,也不能在
Packages/User/ -
host填 IP 或域名,别带ssh://;port单独写字段,别拼在host后面 -
remote_path必须以/开头,结尾建议也加/(如"/var/www/html/"),否则路径拼接会偏移 - 用密钥登录时,删掉
password字段,用ssh_key_file(ST3)或private_key(ST4),值必须是绝对路径:"/home/you/.ssh/id_rsa"或"C:/Users/You/.ssh/id_rsa",且 Linux/macOS 下需chmod 600
upload_on_save 为 true 却不上传?排查三个硬性前提
这个开关只是触发器,不是魔法开关。它只在以下三者同时满足时才起作用:
-
"upload_on_save": true是布尔值(不是字符串"true"),且位于配置文件最外层,不能嵌套在files或sync_down_on_open下面 - 当前编辑的文件必须在已映射的项目目录内(即侧边栏中那个文件夹及其子目录),打开桌面一个
index.js不管同目录有没有配置都无效 - 必须通过侧边栏右键该文件夹 →
SFTP → Map to Remote…显式绑定,而不是仅靠存在sftp-config.json
认证失败、连接拒绝、无响应?先盯住 SSH 层
插件几乎从不报红框错误,只在状态栏闪一下文字,比如 Connection refused 或 Permission denied (publickey)。问题基本不在 JSON 语法,而在 SSH 连通性:
-
Authentication failed:检查服务器/etc/ssh/sshd_config中PasswordAuthentication yes是否开启;若关了,就只能走密钥,且密钥文件权限必须是600 -
No such file or directory:remote_path写错,或用户对目标目录无写权限(别指望 root 权限自动生效) - 点
Upload File没反应:确认host是可访问的地址(内网 IP 在外网连不通)、防火墙放行了端口(默认22,改过就得显式写port字段) - 中文路径乱码或
remote_encoding报错:确保服务器终端编码为 UTF-8,且配置中不要手动设remote_encoding,让它走默认
最易忽略的一点:SFTP 插件没有失败回滚机制。上传中途断连,文件可能只传了一半,远端残留损坏副本,得靠人工核对或加 sync_down_on_open 配合比对。


















