Sublime怎么配置远程服务器SFTP同步_Sublime代码实时上传【干货】

1次阅读

SFTP插件连不上根本原因是ssh认证失败或路径配置错位;必须用密钥认证、正斜杠绝对路径、匹配ssh命令参数;上传需配置upload_on_save与ignore_regexes防覆盖;中文路径失败多因服务器locale非UTF-8;上传慢可启用keepalive并关闭sync_down_on_open。

Sublime怎么配置远程服务器SFTP同步_Sublime代码实时上传【干货】

为什么 SFTP 插件装了却连不上服务器

根本原因通常是 SSH 认证失败或路径配置错位,不是插件没装好。sublimeSFTP 插件依赖本地 ssh 命令(windows 需额外装 OpenSSH 或 git bash),且不支持密码交互式输入——必须用密钥认证。

  • 检查本地能否命令行直连:ssh -i /path/to/key user@host,不通就别指望插件通
  • sftp-config.jsonhostuserport 必须和 ssh 命令一致,private_key 路径要用正斜杠、绝对路径(Windows 也写 C:/Users/xxx/key,别用反斜杠)
  • 如果服务器禁用了密码登录但你没配密钥,会卡在“Connecting…”或报错 Authentication failed

如何让保存即上传,又避免覆盖线上配置文件

upload_on_save + ignore_regexes 组合控制,不是所有文件都该自动同步。

  • 启用实时上传:"upload_on_save": true,但默认会传整个项目目录,危险
  • 限定作用范围:在项目根目录建 sftp-config.json,用 "remote_path": "/var/www/html/" 指定目标,别用 /
  • 排除敏感文件:"ignore_regexes": ["\.env$", "config\.php$", "\.git/", "node_modules/"],正则末尾加 $ 防误杀
  • 注意:修改远程文件后本地不会自动拉取,upload_on_save 是单向的

中文路径或特殊字符文件名上传失败怎么办

本质是编码不一致。SFTP 插件默认按 UTF-8 解析路径,但某些旧版 linux 服务器(尤其是 centos 6 或未设 locale 的容器)用的是 Latin-1,导致文件名乱码、创建失败或 404。

  • 先确认服务器 locale:locale 命令看 LANG,不是 en_US.UTF-8 就要改
  • 临时解决:在 sftp-config.json"charset": "utf-8"(仅对部分服务器生效)
  • 根治方法:服务器端执行 localectl set-locale LANG=en_US.UTF-8 并重启 sshd
  • 绕过法:本地文件名避开中文、空格、括号,用 my_config_v2.php 替代 我的配置(测试).php

上传慢、卡顿或提示“Operation not permitted”

多半是权限或连接复用问题。SFTP 插件默认每次操作新建连接,频繁保存时开销大,且某些 NAS 或 docker 容器的挂载点不支持 stat 等元数据调用。

  • 开启连接复用:"connect_timeout": 30"keepalive": 60,减少握手延迟
  • 关掉多余校验:"sync_down_on_open": false(除非真需要打开就拉远端)、"file_permissions": "644"(避免 chmod 失败中断)
  • “Operation not permitted” 常见于 WebDAV 挂载盘或 NFS 共享目录,换用原生 SSH 路径(如 /home/user/project)而非 /mnt/nas/project
  • 大文件(>5MB)建议手动右键 Upload File,别依赖自动保存

真正麻烦的从来不是配一次连接,而是不同服务器的 SSH 策略、文件系统限制、locale 设置混在一起,同一个 sftp-config.json 在三台机器上可能两种成功一种失败。多建几个配置文件,按项目或环境分开放,比硬凑通用配置靠谱。

text=ZqhQzanResources