SFTP插件必须通过Package Control安装,手动解压无效;配置需严格校验host、ssh_key_file路径、remote_path末尾斜杠、权限字符串格式及项目绑定,否则连接失败或上传无响应。

安装SFTP插件必须走Package Control,手动解压会失效
Sublime Text本身不带SFTP功能,所有远程同步能力都依赖SFTP插件——而它只能通过Package Control正确安装。手动下载zip、拖进Packages目录,大概率导致菜单不出现、右键无SFTP/FTP选项,因为插件有隐式依赖和初始化逻辑。
- 先确认已装
Package Control:按Ctrl+Shift+P(Mac用Cmd+Shift+P),输入Install Package Control回车;没反应就看是否已存在Preferences → Package Control菜单 - 再按
Ctrl+Shift+P→ 输入Package Control: Install Package→ 等列表加载完 → 搜SFTP→ 选作者wbond那个(别选sftp-client或FTPSync) - 装完必须重启Sublime,否则
Project菜单里看不到SFTP,右键也无响应
sftp-config.json配置错一个字段,连接就静默失败
配置文件语法合法 ≠ 能连上。常见现象是点“Upload File”没反应、右键菜单灰掉、或者输出面板只显示Connection refused或Permission denied——问题几乎全出在SSH层,不是JSON写错了,而是网络、认证或路径不对。
-
host填内网IP(如192.168.1.100)但你在家连公司服务器?得换公网IP或域名,并确认服务器防火墙放行了port(默认22,改过就得显式写) - 服务器禁密码登录(
PasswordAuthentication no)?那就不能填password,必须用ssh_key_file,且路径是绝对路径:/home/you/.ssh/id_rsa(Linux/macOS)或C:/Users/You/.ssh/id_rsa(Windows),还得chmod 600该文件 -
remote_path末尾不加/可能上传到错误位置;路径含中文或空格要确保服务器编码为UTF-8,否则报remote_encoding错误
upload_on_save开启后仍不同步,多半是项目没绑定配置
设了"upload_on_save": true却没自动上传?不是插件坏了,而是Sublime根本不知道该把当前文件同步到哪台服务器——它只对“属于某个SFTP项目的文件”生效。
- 必须通过
Project → Save Project As…保存一个.sublime-project文件,且里面嵌入sftp配置块;单纯打开单个文件或文件夹,不会触发同步 - 或者更常用的方式:在侧边栏右键本地项目根文件夹 →
SFTP → Map to Remote…,它会自动生成sftp-config.json并绑定当前目录 - 上传路径需匹配:
remote_path是/var/www/html/,而你编辑的是src/js/app.js,那除非配置file_regex重映射,否则不会传——建议本地目录结构尽量与远程一致
上传后网页打不开,八成是权限变成600了
文件传上去了,Nginx/Apache返回403?检查远程文件权限:ls -l一看往往是-rw-------(600),Web服务器无权读取。SFTP插件默认继承用户主目录掩码,不适用于web目录。
- 在
sftp-config.json里加"default_permissions": "644"(文件)和"directory_permissions": "755"(目录) - 注意值必须是字符串,不是数字:
"644"✅,644❌ - 如果服务器要求
www-data组写入,仅改权限不够,还需配"umask": "002"并确保用户在对应组里
最常被跳过的其实是ssh_key_file权限和remote_path斜杠方向——前者导致认证卡死,后者让文件传进奇怪的子目录。配一次不难,但错一点就得从头查日志。


















