Sublime Text 4 必须用 SFTP-Next 插件,ST3 用 wbond 版 SFTP;sftp-config.json 必须置于项目根目录、全小写命名、含 host/user/remote_path 等必填项,upload_on_save 设为 true(布尔值)且仅对已映射项目内文件生效。

Sublime Text 本身不支持远程连接,必须靠 SFTP 插件实现;但装完插件、写好配置,仍连不上或不上传——问题几乎全出在版本错配、项目未绑定、sftp-config.json路径/命名/字段错误,或 SSH 认证细节没对齐。
确认 Sublime 版本和对应插件名
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,Build 3211 是 ST3 - ST4 用户:命令面板
Ctrl+Shift+P→Package Control: Install Package→ 搜SFTP-Next - ST3 用户:同上操作,搜
SFTP,认准作者wbond,别选sftp-client或FTPSync - 装完必须重启 Sublime,否则
Project菜单里看不到SFTP,右键也无响应
sftp-config.json 必须放对位置、写对字段
这个文件不是全局配置,只对“右键的那个文件夹”生效;名字错一个字符、路径少一个斜杠、字段多一个空格,都会静默失败,不报错也不提示。
- 文件名必须是
sftp-config.json(全小写、无空格、无额外后缀),放在你右键操作的本地项目根目录下 -
host填 IP 或域名,不能带ssh://;端口用单独的port字段,不要拼在host后面 - 密码登录:填
"password": "your_pass",留空或写null会导致认证失败 - 密钥登录:删掉
password字段,用"private_key": "/home/you/.ssh/id_rsa"(Linux/macOS)或"private_key": "C:/Users/You/.ssh/id_rsa"(Windows),路径必须绝对,且文件权限为600 -
remote_path必须以/开头,结尾建议加/(如"/var/www/html/"),否则路径拼接可能偏移
upload_on_save 不生效?检查三个隐性前提
开了 "upload_on_save": true 却没上传,不是插件坏了,而是 Sublime 根本没把当前文件识别为“该同步的文件”。
- 该配置只对“属于已映射项目的文件”生效——必须通过侧边栏右键本地文件夹 →
SFTP → Map to Remote…,或手动创建sftp-config.json并确保它在该文件夹根目录 - 当前编辑的文件必须在该文件夹及其子目录下;打开桌面一个
.js文件,哪怕配置文件存在,也不会触发上传 -
upload_on_save是布尔值,不是字符串:true✅,"true"❌ - 如果远程目录不可写(比如
www-data用户没权限写/var/www/html),上传会卡住几秒后失败,但 Sublime 不弹窗,得看控制台日志
连不上、传不了?别猜,直接看控制台日志
弹窗没报错、状态栏一闪而过、右键菜单灰掉——这些都不是真线索。真正原因全在控制台里。
- 按
Ctrl+`(反引号)打开 Sublime 控制台,所有 SSH/SFTP 底层命令和错误都会实时打印 - 常见真因:
Permission denied (publickey)表示密钥没读到或服务器禁了密码登录;Connection refused多半是host填错内网 IP 或防火墙没放行端口 - Linux/macOS 下,检查私钥权限:
chmod 600 ~/.ssh/id_rsa;Windows 下路径用正斜杠或双反斜杠,避免单反斜杠被转义 - 服务器上确认
/etc/ssh/sshd_config中PubkeyAuthentication yes和PasswordAuthentication yes/no设置与你配置匹配
最常被忽略的是:SFTP 插件不复用终端里的 ssh-agent,也不继承你的免密登录状态;它每次连接都走独立 SSH 流程,所以本地能 ssh user@host 成功,不代表 Sublime 就能连上。

















