跳转到主内容
极星编程网:以代码为星,赴技术山海!

Sublime Text如何使用SFTP远程文件同步_Sublime SFTP远程文件同步使用详解

Sublime Text 4 中 SFTP 插件需满足项目已加载、侧边栏含可映射文件夹、正确安装 wbond 版并重启才能显示右键菜单;连接失败多因 SSH 握手问题,须用绝对密钥路径、600 权限、启用 PubkeyAuthentication;上传依赖路径匹配与 upload_on_save 开关位置,权限错乱需设 default_permissions;无锁机制,不可替代 rsync 或 Git。 Sublime Text 原生不支持 SFTP 远程同步,所有“自动上传”功能都依赖第三方插件,而目前唯一能稳定跑在 Sublime Text 4 上的只有
SFTP
(wbond 版),但它不是 FTP 客户端,而是基于本地 SSH 工具链封装的同步代理——这意味着它会调用系统
ssh
和
sftp
命令,而不是自己实现协议栈。 为什么 SFTP 插件右键菜单不出现 这不是安装失败,而是触发条件没满足。插件只在「已加载项目」且「侧边栏有可映射的文件夹」时才激活菜单项。 必须通过 Project → Add Folder to Project 或 Project → Save Project As… 显式建立项目,不能只打开单个文件 右键目标必须是侧边栏中显示的文件夹(不是空白处、不是标签页、不是未保存的 untitled 文件) 安装后必须重启 Sublime Text —— Package Control 不会热加载 GUI 菜单项 确认安装的是作者为
wbond
的
SFTP
,不是
sftp-client
或
FTPSync
等仿制品 sftp-config.json 配置写对了却连不上 绝大多数连接失败和配置语法无关,而是 SSH 底层握手被拒。插件不会复用你终端里已登录的
ssh-agent
,它每次都是全新调用
ssh
命令。
host
填内网 IP(如
192.168.1.100
)但你在公网访问?换公网 IP 或域名,并确认服务器防火墙放行对应端口
private_key
路径写相对路径(如
~/.ssh/id_rsa
)?必须写绝对路径,Linux/macOS 用
/home/you/.ssh/id_rsa
,Windows 用
C:/Users/You/.ssh/id_rsa
密钥权限不是
600
?Linux/macOS 下执行
chmod 600 ~/.ssh/id_rsa
,否则 OpenSSH 直接拒绝读取 服务器
/etc/ssh/sshd_config
关了密钥登录?检查
PubkeyAuthentication yes
是否启用 同时写了
password
和
private_key
字段?二者互斥,删掉
password
字段 upload_on_save 设为 true 却没上传 这个开关只是“触发器”,真正决定是否上传的是路径匹配逻辑和项目上下文。 仿Sublime和notepad++编辑器效果 仿Sublime和notepad++编辑器效果 下载
upload_on_save
必须写在
sftp-config.json
的根对象层级,不能嵌套在
files
或
sync_down_on_open
下面 当前编辑的文件路径必须落在
local_path
(或项目根目录)下,且其相对于该路径的子路径要能与
remote_path
对齐。例如:
local_path
是
/src
,
remote_path
是
/var/www/html
,那你改
/src/js/app.js
才会传到
/var/www/html/js/app.js
没保存过
.sublime-project
文件?SFTP 插件只认「带 project 文件的项目」,不认「临时打开的文件夹」 网络超时默认 3 秒,服务器响应慢就静默失败。加
"timeout": 10
提高容忍度 想调试?按
Ctrl+Shift+P
输入
SFTP: Show Console
,所有底层
sftp
命令和错误都会实时打印出来 上传后远程文件权限错乱(比如变成 600 导致网页打不开) SFTP 插件上传文件时默认继承本地 umask,不设法覆盖就会让 PHP/HTML 文件变成不可读(web server 拒绝服务)。 在
sftp-config.json
中显式加
"default_permissions": "644"
(文件)和
"default_dir_permissions": "755"
(目录) 别依赖
ignore_regexes
来跳过
.git
或
node_modules
—— 如果它们出现在
local_path
下但没被忽略,插件仍会尝试上传,可能因权限或大小卡死 上传失败不会回滚,也不会提示;开启
"confirm_sync": true
可在每次上传前弹窗确认 多人协作场景下,
sync_down_on_open
是必要选项,否则你打开一个已被同事改过的文件,保存时直接覆盖对方修改 最常被忽略的一点:SFTP 插件没有锁机制,也不做内容比对。它只管“把本地文件扔过去”,哪怕远程文件刚被
curl
改过、被脚本重写过、甚至被 rm -rf 过,它都不会预警。真要可靠同步,得靠
rsync --checksum
或 Git 工作流,而不是编辑器插件。

相关文章