Sublime SFTP插件仅支持SFTP/SSH协议(端口22),不兼容传统FTP;配置需严格遵循JSON格式、正确路径及权限,且依赖服务器SSH服务正常运行。

Sublime 的 SFTP 插件不支持 FTP,只认 SFTP/SSH 协议
很多人搜“Sublime FTP 教程”,但实际安装的 SFTP 插件根本不支持传统 FTP(即明文传输、端口 21)。它底层用的是 SSH 文件传输协议(SFTP),必须走 port: 22,依赖 SSH 服务可用。如果你的服务器只开了 FTP 服务、没开 SSH,那这个插件直接连不上——不是配置错了,是协议不兼容。
常见错误现象:Connection refused 或 Timeout waiting for SSH,往往就是服务器压根没运行 sshd,或者防火墙拦了 22 端口。
- 确认服务器 SSH 是否正常:终端执行
ssh user@host能连上,SFTP 插件才可能成功 - 别在
host字段写ftp://xxx.com——必须只填域名或 IP,如"host": "192.168.1.100" - FTP 需求强烈?换工具:FileZilla + Sublime 外部编辑器绑定,或改用 VS Code 的
FTP-Simple插件(明确支持 FTP)
sftp-config.json 必须放在项目根目录,且文件名不能错
插件不会全局扫描,也不会读取系统 SSH 配置(比如 ~/.ssh/config),它只看当前 Sublime 项目的根目录下有没有名为 sftp-config.json 的文件。名字少个横线、多个小写、带空格或后缀是 .json.txt,都会导致右键菜单里完全不显示 Sync Remote 选项,也不报错,静默失效。
实操建议:
- 在 Sublime 中用
Project → Add Folder to Project加入本地文件夹,再右键该文件夹 →SFTP → Setup Server,自动生成配置文件(最稳) - 手动创建时,用 Sublime 自带的 JSON 语法高亮检查格式:确保所有引号是英文双引号,逗号不结尾,
remote_path末尾不加斜杠("/var/www/html"✅,"/var/www/html/"❌ 可能同步失败) - 配置里不要出现注释(
//或/* */),JSON 标准不支持,会解析失败
密钥登录失败?90% 是路径或权限问题
即使你在终端能 ssh user@host 成功,SFTP 插件仍报 Permission denied (publickey),大概率是这两点:
-
ssh_key_file值用了~/.ssh/id_rsa:Sublime 不展开波浪号,必须写绝对路径,如"/Users/you/.ssh/id_rsa"或"C:\\Users\\You\\.ssh\\id_rsa" - 私钥文件权限太松:Linux/macOS 下运行
chmod 600 ~/.ssh/id_rsa;Windows 若用 Git Bash 生成的密钥,也要确认属性里没勾选“只读” - 别同时填
password和ssh_key_file,插件行为未定义,优先级混乱
如果不想折腾密钥,可临时用密码登录(仅限内网/测试环境):"password": "your-pass",但注意该字段明文可见,切勿提交到 Git。
自动同步开启容易,关掉更关键
upload_on_save 和 sync_down_on_open 开起来很爽,但一不小心就覆盖协作成果或上传半截文件。特别是 sync_down_on_open,打开一个文件就拉整个远程目录?大项目卡死不说,还可能把别人刚改的线上配置冲掉。
- 开发阶段推荐:
"upload_on_save": true+"sync_down_on_open": false,手动按需下载 - 上线前部署:关掉自动上传,右键文件夹 →
Upload Folder,更可控 - 忽略列表必配:
"ignore_regexes": [".git", "node_modules", "*.log", "sftp-config.json"],否则上传几 GB 依赖或日志,同步一次等两分钟
真正容易被忽略的点:网络不稳定时,upload_on_save 会静默失败,文件看似保存了,其实没传上去。建议首次配置完,手动右键上传一个测试文件,看状态栏是否显示 Upload complete,再开自动模式。










