sublime text无法直接编辑远程私有服务器脚本的根本原因是sftp-config.json未置于项目根目录、ssh认证失败或upload_on_save未正确配置;必须确保该文件由右键“map to remote…”自动生成于项目根目录,含"type":"sftp"和"upload_on_save":true,密钥路径为绝对路径,且首次连接需手动接受主机指纹。

直接编辑远程私有服务器上的脚本,关键不是“能不能连”,而是sftp-config.json是否在正确位置、SSH 认证是否生效、以及upload_on_save是否真正触发同步——三者缺一不可。
为什么右键“Map to Remote”生成的配置不生效
常见现象是点击“Browse Server”后空白,或保存文件时毫无反应。根本原因通常是:sftp-config.json没放在项目根目录下,而是被误存到了Packages/User/这类全局路径里。SFTP 插件只在当前打开的文件夹(即项目根)中查找该文件,且必须命名为sftp-config.json(不能是server.json或带版本号)。
- 确保 Sublime 是通过 File → Open Folder 打开本地空文件夹,再右键该文件夹选择
Map to Remote… - 配置生成后,检查该文件夹下是否存在
sftp-config.json,内容里必须有"type": "sftp"和"upload_on_save": true - 如果用的是 SSH 密钥,
"ssh_key_file"路径必须是绝对路径(如/home/user/.ssh/id_ed25519),波浪号~不会被展开
私有服务器连不上:端口、防火墙与主机指纹
私有服务器通常禁用密码登录、限制端口、关闭 root 登录——这些都会导致连接卡在“connecting…”或报错 Connection refused 或 Host key verification failed。
- 确认服务器 SSH 端口不是默认 22(比如是 2222),则配置中必须显式写
"port": 2222,不能留空或写字符串"2222" - 首次连接会弹出主机指纹确认,必须手动点“Accept”;若跳过,下次连接会失败,此时需删掉
~/.ssh/known_hosts中对应行,或在配置中加"ignore_known_hosts": true(仅调试用) - 私钥有密码时,SFTP 插件不会弹窗提示输入,会导致静默失败;建议用
ssh-add预加载密钥,或改用无密码密钥(开发机可接受)
编辑 Python/Shell 脚本时的同步陷阱
脚本类文件常因权限、路径或编码问题导致上传后无法执行,或中文注释变乱码。
-
"file_permissions": "755"必须显式设置,否则上传后可能仍是 644,脚本无法./xxx.sh执行 -
"remote_path"末尾不要加斜杠(如/opt/scripts而非/opt/scripts/),否则可能导致路径拼接错误 - 服务器 locale 若非 UTF-8(如
C),中文会乱码;可在配置中加"remote_encoding": "utf-8"和"remote_locale": "en_US.UTF-8" - 避免编辑正在运行的脚本(如被
systemd启动的服务),保存瞬间可能被进程锁住或覆盖,建议先systemctl stop
最易被忽略的一点:SFTP 插件从不“实时挂载”远程文件系统,它只是“下载→本地编辑→上传”的快捷封装。所以没有真正的“打开远程文件”,只有本地副本。这意味着你永远看不到别人同时改了什么,冲突只能靠人工比对。











