安装sftp插件后菜单不出现,需通过package control安装wbond版并重启;连接失败主因是网络不通、密钥权限错误或端口配置不当;上传不同步因未保存项目配置或路径不匹配;权限异常需设default_permissions为"644"等字符串。

安装 SFTP 插件后连接不上,SFTP 菜单不出现
Sublime Text 本身不带 SFTP 功能,必须装第三方插件。官方 Package Control 是唯一靠谱渠道,别手动下 zip 解压——容易漏依赖或路径错。
确保已安装 Package Control(没装就先按 Ctrl+Shift+P → 输入 Install Package Control 回车);再按 Ctrl+Shift+P → Package Control: Install Package → 搜 SFTP,选 SFTP(作者是 wbond,别选错成 sftp-client 或其他同名插件)。装完重启 Sublime,右键菜单和 Project 菜单里才会有 SFTP 项。
sftp-config.json 配置写对了却提示 Connection refused 或 Permission denied
这是最常卡住的地方:配置文件语法没错,但 SSH 层根本连不过去。
常见原因:
-
host填的是内网 IP(比如192.168.x.x),但你本地不在同一局域网 —— 改用公网 IP 或域名,并确认服务器开了对应端口(默认22)且防火墙放行 -
user和password看似正确,但服务器禁用了密码登录(只允许密钥)。这时必须配ssh_key_file,路径要写绝对路径,比如/home/you/.ssh/id_rsa(Windows 用C:/Users/You/.ssh/id_rsa),且权限得是600(Linux/macOS 下chmod 600 ~/.ssh/id_rsa) -
port没写,默认走22,但有些服务器改过 SSH 端口,必须显式填上 - 配置里混用了
password和ssh_key_file—— 二者只能二选一,同时存在会触发认证冲突
启用实时同步(upload_on_save)但文件改了没自动传
实时同步不是开个开关就完事,它依赖几个隐性条件:
-
upload_on_save必须设为true,且放在配置文件的根层级(不是嵌套在files或sync_down_on_open下面) - 当前文件必须属于已配置的 SFTP 项目 —— 即:你得通过
Project → Save Project As…保存过一个.sublime-project文件,并在里面声明了sftp配置块;单纯打开单个文件不会触发同步 - 文件保存时路径需匹配
remote_path规则。比如你配了"remote_path": "/var/www/html/",但当前文件在/src/js/app.js,那它不会被上传 —— 得靠file_regex或调整本地目录结构来对齐 - 如果服务器响应慢或网络抖动,SFTP 插件默认 3 秒超时,会静默失败。可在配置里加
"timeout": 10提高容忍度
上传后远程文件权限变成 600,网页打不开
SFTP 插件默认用用户主目录权限掩码上传,web 目录通常需要 644(文件)或 755(目录),否则 Nginx/Apache 拒绝读取。
必须手动指定权限:
- 在
sftp-config.json里加上"default_permissions": "644"(文件)和"default_dir_permissions": "755" - 如果某些文件需要特殊权限(比如
wp-config.php),可用file_permissions按路径单独设:"file_permissions": { "wp-config.php": "600" } - 注意:权限字符串必须是八进制格式的字符串(带引号),不是数字,写成
644不带引号会报错
真正麻烦的不是配一次,而是不同服务器的 SSH 策略、用户权限、SELinux 设置、路径大小写敏感度全都不一样。同一个 sftp-config.json 换台机器可能就得调三处 —— 尤其是 Windows 本地连 Linux 服务器时,路径斜杠、换行符、编码都可能暗中搞鬼。










