SFTP插件需绑定项目且配置文件严格置于根目录才生效;右键菜单仅在Project→Add Folder to Project添加的侧边栏文件夹上激活,sftp-config.json必须全小写、连字符、.json扩展名,remote_path以/开头结尾,upload_on_save仅对已映射目录生效。

SFTP 插件装完不生效、右键没菜单、保存不上传——90% 是项目没绑定或配置文件放错位置,不是插件问题。
为什么右键没有 SFTP/FTP 菜单
插件只在「有项目且侧边栏显示文件夹」时才激活。它不响应单个文件、空白区域、未添加到项目的目录,也不认“打开文件夹”这种临时视图。
- 必须通过
Project → Add Folder to Project把本地目录加进项目,让它出现在侧边栏顶层 - 右键操作对象只能是侧边栏中那个文件夹图标本身,不是里面的文件,也不是空白处
- 确认安装的是作者为
wbond的官方SFTP(别选sftp-client或FTPSync) - 安装后务必重启 Sublime Text,否则
Project菜单里都看不到SFTP项
sftp-config.json 必须放在哪、怎么命名
这个文件不是全局配置,而是严格绑定到你右键的那个文件夹根目录下,名字、大小写、扩展名一个都不能错。
- 文件名必须是
sftp-config.json(全小写,带连字符,.json 小写),不能是SFTP-config.json、sftp_config.json或sftp-settings.json - 必须放在本地项目根目录(即你右键的那个文件夹)下,不能放在子目录或用户 Packages 目录里
-
remote_path必须以/开头,结尾也建议加/(如"/var/www/html/"),否则路径拼接会偏移 -
ssh_key_file支持~展开(如"~/.ssh/id_rsa"),但不识别$HOME或环境变量
upload_on_save 不生效的真正原因
设了 "upload_on_save": true 却没自动上传?不是插件坏了,而是 Sublime 根本不知道该把当前文件同步到哪台服务器——它只对“属于某个 SFTP 项目的文件”生效。
- 必须通过
Project → Save Project As…保存一个.sublime-project文件,且里面嵌入 sftp 配置块;单纯打开单个文件或文件夹,不会触发同步 - 更常用的方式:在侧边栏右键本地项目根文件夹 →
SFTP → Map to Remote…,它会自动生成sftp-config.json并绑定当前目录 - 用密钥登录时,
password字段必须完全删除,留空字符串("password": "")会导致插件仍走密码认证并失败 - Windows 路径要用正斜杠或双反斜杠:
"C:/Users/xxx/.ssh/id_rsa"或"C:\Users\xxx\.ssh\id_rsa"
连接静默失败时优先排查什么
输出面板没报错、右键菜单灰掉、点 Upload File 没反应——问题几乎全出在 SSH 层,不是 JSON 写错了,而是网络、认证或路径不对。
-
host填内网 IP(如192.168.1.100)但你在公网连?得换公网 IP 或域名,并确认服务器防火墙放行了端口(默认22,改过就得显式写"port": 2222) - 服务器禁密码登录(
PasswordAuthentication no)?那就不能填password,必须用ssh_key_file,且私钥文件权限得是600(Linux/macOS 执行chmod 600 ~/.ssh/id_rsa) -
connect_timeout建议设为30,太短容易误判超时 - 路径含中文或空格要确保服务器编码为 UTF-8,否则报
remote_encoding错误
最常被忽略的一点:SFTP 插件没有失败回滚机制。上传中断或部分写入后,服务器上可能残留损坏文件,而本地编辑器毫无感知——所以关键文件上线前,最好手动验证一次远程内容。











