sublime text 远程编辑需满足三要素:项目已绑定、sftp-config.json 由右键自动生成于项目根目录、ssh 认证正确;sftp-next 插件必须安装并重启软件,配置文件名大小写及路径格式须严格匹配,upload_on_save 等功能依赖项目上下文与网络容错设置。

Sublime Text 本身不支持远程连接,所谓“连上服务器”其实是本地编辑 + 自动上传的模拟流程;能跑起来的关键不是插件装了没,而是项目已绑定、sftp-config.json 由右键自动生成于项目根目录、SSH 认证正确,三者缺一不可。
右键没出现 SFTP 菜单?先确认项目和文件夹是否“被识别”
插件只响应「已添加到项目的顶层文件夹」的右键操作,不认单个文件、桌面打开的文件、或“打开文件夹”这种临时视图。
- 必须通过
Project → Add Folder to Project把本地目录加进项目,且该目录要出现在侧边栏最顶层 - 右键对象只能是那个文件夹图标本身,不是里面某个
.js文件,也不是侧边栏空白处 - Sublime Text 4(Build 41xx)必须装
SFTP-Next,原版SFTP会直接报ImportError: No module named 'urllib3' - 装完插件后务必重启 Sublime Text,否则
Project菜单里都看不到 SFTP 项
sftp-config.json 放哪、怎么写、为什么静默失败
这个文件不是全局配置,也不接受手动创建——插件只读取通过右键 Map to Remote… 在项目根目录自动生成的 sftp-config.json。名字大小写、路径、内容格式错一个就失效。
- 文件名必须严格为
sftp-config.json(不能是SFTP-config.json、sftp_config.json或带空格) -
remote_path必须以/开头,结尾建议也加/(如"/var/www/html/"),否则路径拼接会偏移 -
ssh_key_file支持~展开(如"~/.ssh/id_rsa"),但不识别$HOME或其他环境变量 - 同时写了
password和ssh_key_file?SSH 层会直接拒绝,错误信息只显示Authentication failed,无具体提示
upload_on_save 不生效?先确认这四件事
实时同步不是开关一开就自动跑,它依赖隐性上下文:项目已保存、路径匹配、认证成功、超时容忍足够。
-
upload_on_save必须放在配置文件根层级,不能嵌套在files或sync_down_on_open下面 - 当前文件必须属于已保存的项目(即存在
.sublime-project文件),且该文件路径需能被remote_path规则覆盖(比如配了"/var/www/html/",但你在/src/index.js编辑,就不会上传) - 网络抖动或服务器响应慢时,默认 3 秒超时会导致静默失败;可在配置中加
"timeout": 10提高容错 - 上传后远程权限变成
600?得显式设"default_permissions": "644",否则 Web 服务可能无法读取
连接失败却没报错?大概率卡在 SSH 底层握手
插件不会复用你终端里已登录的 ssh-agent,它每次都是全新调用系统 ssh 命令。很多“配置没错但连不上”的问题,其实出在密钥权限、端口或服务端设置上。
-
host填的是内网 IP(比如192.168.x.x),但你本地不在同一局域网?换公网 IP 或域名,并确认服务器防火墙放行对应端口 -
ssh_key_file路径写相对路径(如~/.ssh/id_rsa)?必须写绝对路径,Linux/macOS 用/home/you/.ssh/id_rsa,Windows 用C:/Users/You/.ssh/id_rsa - 密钥权限不是
600?Linux/macOS 下执行chmod 600 ~/.ssh/id_rsa,否则 OpenSSH 直接拒绝读取 - 服务器
/etc/ssh/sshd_config关了密钥登录?检查PubkeyAuthentication yes是否启用
真正容易被忽略的是:插件不维护连接状态,也没有锁机制,上传失败不会回滚,也不会提示冲突;一旦多人共用同一远程路径,或有人绕过 Sublime 直接改服务器文件,sync_down_on_open 就可能覆盖本地未提交的修改。











