sublime text 本身不支持 ftp/sftp,所有远程连接均依赖插件;90% 的“连不上”问题源于装错版本(st4 必须用 sftp-next)、未重启、或 sftp-config.json 未通过右键“map to remote…”在项目根目录自动生成。

Sublime Text 本身不支持 FTP/SFTP,所有远程连接能力都来自插件;装错版本、没重启、配置文件放错位置,这三件事占了 90% 的“连不上”问题。
怎么确认该装 SFTP 还是 SFTP-Next
打开 Help → About Sublime Text 看 Build 号:
- Build 41xx(比如 4143)→ 是 ST4,必须装
SFTP-Next,原版SFTP会报ImportError: No module named 'urllib3' - Build 3xxx(比如 3211)→ 是 ST3,可装原版
SFTP(作者 wbond),别选sftp-client或FTPSync - 命令面板搜不到
SFTP?先按Ctrl+Shift+P输入Install Package Control补装管理器
sftp-config.json 必须放对位置且由插件生成
手动新建一个叫 sftp-config.json 的空文件,哪怕内容完全正确,插件也会静默忽略——它只认“右键项目根目录”触发的生成逻辑:
- 先通过 Project → Add Folder to Project 把本地项目加进侧边栏(确保它是顶层文件夹)
- 右键这个文件夹 →
SFTP/FTP → Map to Remote…,自动生成配置文件并绑定路径 - 文件必须放在项目根目录下,不能在子目录、不能叫
SFTP-config.json(大小写敏感)、不能多空格 - 没项目(只打开单个文件或桌面 .txt)→ 配置完全无效,
upload_on_save不触发
host/user/remote_path 缺一不可,认证方式只能二选一
配置里漏掉 host、user 或 remote_path,会直接报 Connection failed: Invalid config;更隐蔽的问题出在认证字段冲突:
- 服务器禁密码登录(
PasswordAuthentication no)?那就不能填password,必须用private_key,且值是绝对路径:/home/me/.ssh/id_rsa(Linux/macOS)或C:/Users/me/.ssh/id_rsa(Windows) -
private_key文件权限不是 600(Linux/macOS 下chmod 600 ~/.ssh/id_rsa)→ 认证失败,但错误信息只显示Authentication failed -
remote_path必须以/开头,结尾不加/(如/var/www/html),否则上传路径错位 - 同时写了
password和private_key→ SSH 层拒绝连接,不会提示具体原因
upload_on_save 生效有隐性前提
设了 "upload_on_save": true 却没自动上传,不是插件坏了,而是条件没凑齐:
- 该字段必须是布尔值
true,不是字符串"true",也不能缩进在files或sync_down_on_open下面 - 当前文件必须在已映射的本地项目目录内;编辑桌面一个
index.js,哪怕同名同路径也不同步 - 远程目录无写权限(比如 www-data 用户不可写)→ 上传卡顿几秒后报
Permission denied,Sublime 不弹窗,得看右下角状态栏或按Ctrl+`查控制台输出 - 网络抖动或服务器响应慢?加
"timeout": 10提高超时容忍度
最常被跳过的动作:右键项目根目录走 Map to Remote…,而不是手写配置;最常被忽略的细节:ST4 用户硬装原版 SFTP,或者密钥路径用了相对路径。这些地方一错,整个流程就卡死在无声无息里。











