sublime text 远程编辑需 sftp 插件配合,st4 必装 sftp-next,st3 只能用 wbond 原版 sftp;项目必须通过 add folder to project 加入侧边栏,右键文件夹图标生成 sftp-config.json;host/user/remote_path 缺一不可,认证字段不可共存,remote_path 须以 / 开头,upload_on_save 仅对映射目录内文件生效。

Sublime Text 本身不支持远程连接,所谓“连上服务器”只是本地编辑 + SFTP 插件自动上传的模拟流程;能跑起来的关键不是插件装了没,而是项目已绑定、sftp-config.json 由右键自动生成于项目根目录、SSH 认证正确——三者缺一不可。
怎么确认该装 SFTP 还是 SFTP-Next
打开 Help → About Sublime Text,看 Build 号:
- Build 41xx(如 4143)→ 是 ST4,必须装
SFTP-Next;装原版会报ImportError: No module named 'urllib3',菜单直接消失 - Build 3xxx(如 3211)→ 是 ST3,只能装作者为
wbond的原版SFTP;搜到sftp-client或FTPSync都是错的 - 装完必须重启 Sublime Text,否则 Project 菜单里看不到 SFTP,右键也无响应
sftp-config.json 必须由右键生成,不能手建
插件只认「右键项目根目录 → SFTP/FTP → Map to Remote…」这一步触发的配置文件。手动新建一个 sftp-config.json,哪怕内容完全正确,也会被静默忽略:
- 先通过 Project → Add Folder to Project 把本地项目加进侧边栏(确保它是顶层文件夹)
- 右键这个文件夹图标本身 →
SFTP/FTP → Map to Remote…,自动生成配置并绑定路径 - 文件名必须是
sftp-config.json(全小写、带连字符、.json小写),不能是SFTP-config.json或sftp_config.json - 必须放在你右键的那个文件夹根目录下,不能在子目录、不能放错位置
host/user/remote_path 缺一不可,认证字段不能共存
漏掉 host、user 或 remote_path,直接报 Connection failed: Invalid config;更隐蔽的问题出在认证字段冲突:
- 服务器禁密码登录(
PasswordAuthentication no)?那就不能填password,必须用private_key(ST4)或ssh_key_file(ST3),值必须是绝对路径:/home/you/.ssh/id_rsa或C:/Users/You/.ssh/id_rsa -
private_key或ssh_key_file文件权限不是600(Linux/macOS 下执行chmod 600 ~/.ssh/id_rsa)→ 认证失败,但错误信息只显示Authentication failed - 同时写了
password和private_key→ SSH 层直接拒绝连接,不会提示具体原因 -
remote_path必须以/开头,结尾建议也加/(如"/var/www/html/"),否则路径拼接会偏移
upload_on_save 不生效?检查项目绑定和路径范围
upload_on_save 只对已映射目录下的文件生效,不是全局开关:
- 必须设为布尔值
true,不能写成字符串"true",也不能缩进在files或sync_down_on_open下面 - 当前文件必须在已映射的本地项目目录内;编辑桌面一个
index.js,哪怕同名同路径也不同步 - 网络抖动或服务器响应慢时,默认 3 秒超时会导致静默失败;可在配置中加
"timeout": 10提高容错 - 上传后远程权限变成
600?得显式设"default_permissions": "644",否则 Web 服务可能无法读取
最常被忽略的是:没有真正把项目加进侧边栏顶层、右键对象不是文件夹图标本身、sftp-config.json 名字或路径错一个字符——这些都不会报错,只会静默失效。











