sublime如何配置远程服务器连接(SFTP)?(实时同步)

3次阅读

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

sublime如何配置远程服务器连接(SFTP)?(实时同步)

安装 SFTP 插件后连接不上,SFTP 菜单不出现

sublime Text 本身不带 SFTP 功能,必须装第三方插件。官方 Package Control 是唯一靠谱渠道,别手动下 zip 解压——容易漏依赖或路径错。
确保已安装 Package Control(没装就先按 Ctrl+Shift+P → 输入 Install Package Control 回车);再按 Ctrl+Shift+PPackage Control: Install Package → 搜 SFTP,选 SFTP(作者是 wbond,别选错成 sftp-client 或其他同名插件)。装完重启 Sublime,右键菜单和 Project 菜单里才会有 SFTP 项。

sftp-config.json 配置写对了却提示 Connection refusedPermission denied

这是最常卡住的地方:配置文件语法没错,但 ssh 层根本连不过去。
常见原因:

  • host 填的是内网 IP(比如 192.168.x.x),但你本地不在同一局域网 —— 改用公网 IP 或域名,并确认服务器开了对应端口(默认 22)且防火墙放行
  • userpassword 看似正确,但服务器禁用了密码登录(只允许密钥)。这时必须配 ssh_key_file,路径要写绝对路径,比如 /home/you/.ssh/id_rsawindowsC:/Users/You/.ssh/id_rsa),且权限得是 600linux/macoschmod 600 ~/.ssh/id_rsa
  • port 没写,默认走 22,但有些服务器改过 SSH 端口,必须显式填上
  • 配置里混用了 passwordssh_key_file —— 二者只能二选一,同时存在会触发认证冲突

启用实时同步(upload_on_save)但文件改了没自动传

实时同步不是开个开关就完事,它依赖几个隐性条件:

  • upload_on_save 必须设为 true,且放在配置文件的根层级(不是嵌套在 filessync_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 服务器时,路径斜杠、换行符、编码都可能暗中搞鬼。

text=ZqhQzanResources