右键无sftp菜单需先确认项目已加载:必须通过project→add folder to project添加本地目录,且右键对象是侧边栏中具体文件夹节点;重启sublime、验证插件作者为wbond、配置文件sftp-config.json须置于项目根目录并严格命名。

右键没出现SFTP菜单?先确认项目已加载
Sublime不会在空白界面或未加载文件夹时显示SFTP选项——这是最常被误以为“插件没装好”的原因。它只对已添加到项目的文件夹生效。
- 必须通过
Project → Add Folder to Project添加本地目录,不能只用File → Open Folder - 右键操作对象是侧边栏里**具体的文件夹节点**,不是空白处、也不是文件本身(除非该文件属于已映射项目)
- 重启Sublime Text:部分版本安装SFTP后需重启才注册右键菜单项
- 检查插件作者是否为
wbond:名字含“SFTP”的仿品很多,但只有官方版支持Map to Remote和完整配置逻辑
sftp-config.json 配置字段填什么?关键三项别写错
配置文件必须放在项目根目录,且严格命名为 sftp-config.json(大小写、短横线、.json缺一不可),否则插件静默忽略。
-
host填服务器IP或域名,不要加ssh://或http:// -
remote_path必须以/开头且结尾也推荐加/(如/var/www/html/),否则路径拼接会出错 - 密钥登录时,
ssh_key_file路径要写对:~/.ssh/id_rsa在macOS/Linux可用,Windows必须用绝对路径如C:\Users\name\.ssh\id_rsa或正斜杠C:/Users/name/.ssh/id_rsa - 删掉
password字段再填ssh_key_file:两者共存时插件可能优先尝试密码,导致Permission denied (publickey)
保存不上传?打开控制台看真实错误
弹窗提示“Upload failed”太笼统,真正原因藏在底层日志里。靠猜不如直接看SSH/SFTP命令的原始输出。
- 按
Ctrl+Shift+P输入SFTP: Show Console回车,所有连接、认证、传输命令和报错都会实时打印 - 常见真因:
Permission denied往往不是密钥问题,而是远程目录权限不足(ls -ld /var/www/html看用户是否有写权限) -
Connection timed out多因服务器防火墙封了22端口,或connect_timeout设太小(可设为60) - 密钥文件权限非
600(Linux/macOS下chmod 600 ~/.ssh/id_rsa),OpenSSH会直接拒绝读取,连握手都不走
多人协作编辑远程文件,怎么避免覆盖?
SFTP插件没有锁机制,也不比对内容哈希,它只是单向同步(本地→远程)。别人改了服务器上的文件,你本地完全不知道。
- 启用
sync_down_on_open:true:每次双击打开文件前,自动从服务器拉最新版 - 启用
confirm_overwrite_newer:true:若本地文件时间戳早于远程,保存时会弹窗提醒,防止误覆盖 - 别依赖
upload_on_save做部署:它不校验上传结果,失败也不会回滚,生产环境建议手动触发SFTP → Upload File并确认控制台无报错 - 远程文件被其他方式修改(比如Git pull、脚本生成),本地缓存就失效了——这时得手动右键 →
SFTP → Download File










