sublime text 远程连接需 sftp 插件模拟上传流程,关键在于项目绑定、右键自动生成 sftp-config.json(全小写、放项目根目录)、ssh 认证正确三者缺一不可;st4 用 sftp-next,st3 用 wbond 原版 sftp,装后必须重启,且 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下面 - 当前文件必须属于已保存的项目(即存在
.sublime-project文件),且该文件路径需能被remote_path规则覆盖(比如配了"/var/www/html/",但你在/src/index.js编辑,就不会上传) - 网络抖动或服务器响应慢时,默认 3 秒超时会导致静默失败;可在配置中加
"timeout": 10提高容错
最常被忽略的是:配置文件名大小写、路径位置、认证方式冲突这三点,任何一个出错,插件都静默失败,不报错也不提示。











