Sublime Text如何配置SFTP插件实现远程FTP上传到服务器?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1247个文字,预计阅读时间需要5分钟。
Sublime Text 本身不支持 FTP 或 SFTP 上传,所谓的FTP 上传在 Sublime 中实际上只能通过 SFTP(SSH 文件传输协议)实现。这需要依赖第三方插件,目前唯一可用且维护良好的选项是 SFTP 插件(wbond 版本)。但请注意,这个插件 不兼容 FTP 协议,也不支持纯 FTP 服务器。如果你的服务器只开启了 FTP(非 SFTP),则该插件无法使用。
Sublime 安装 SFTP 插件必须用 Package Control,手动放文件夹无效
手动下载 zip、解压到 Packages/ 目录会导致插件初始化失败:菜单不出现、右键无 SFTP 选项、命令面板搜不到相关命令。
- 先确认已装
Package Control:按Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Install Package Control回车 - 再按
Ctrl+Shift+P→ 输入Package Control: Install Package回车 - 等列表加载完,搜
SFTP,**只选作者为wbond的那个**(别选sftp-client、FTPSync等仿品) - 安装后必须重启 Sublime Text,否则
Project菜单和右键菜单不会显示SFTP
sftp-config.json 必须放在项目根目录,字段错一个就静默失败
插件不报红框错误,只在状态栏闪一下文字,然后没反应——这是最常被忽略的点。配置文件名必须是 sftp-config.json,编码为 UTF-8 无 BOM,且必须位于你通过 Project → Add Folder to Project 加入的本地项目根目录下。
-
"host":只填 IP 或域名,**不能带ftp://或sftp://前缀**,例如"host": "192.168.1.100" -
"user":SSH 用户名,不是控制面板账号;若用密钥登录,"password"字段必须删掉或留空 -
"ssh_key_file":路径必须是**绝对路径**,Linux/macOS 下如"/home/you/.ssh/id_rsa",Windows 下如"C:/Users/You/.ssh/id_rsa"(正斜杠更稳) -
"remote_path":必须以/开头的**绝对路径**,例如"/var/www/html/";结尾加/影响上传目标位置,不加可能传错目录 -
"port":默认 22,如果服务器改过 SSH 端口,必须显式写上,比如"port": 2222
upload_on_save 不生效?大概率是项目没绑定或路径不匹配
设了 "upload_on_save": true 却没上传,不是插件坏了,而是 Sublime 根本不知道该把当前文件同步到哪——它只对“属于某个 SFTP 项目的文件”起作用。
- 必须通过侧边栏右键本地项目根文件夹 →
SFTP → Map to Remote…,才能生成有效配置并自动绑定 - 或者手动创建
.sublime-project文件,并在里面嵌入sftp配置块(仅推荐高级用户) - 文件本地路径需能映射到
remote_path:比如remote_path是/var/www/html/,你编辑的是js/app.js,那它会被传到/var/www/html/js/app.js;但如果编辑的是../config.php,就不会上传 - 网络慢时默认 3 秒超时,可在配置里加
"timeout": 10提高容错
上传成功但网页 500?别怪插件,看权限和 SELinux
SFTP 插件只负责搬运字节,不处理 Web 服务器上下文。上传后 PHP 报 500、CSS 不加载,几乎全是权限或安全模块拦截导致。
- 默认上传文件权限是
644,目录是755,但有些环境(如 suPHP、open_basedir)要求脚本属主匹配或权限更严格 - 可在配置中加
"file_permissions": "644"和"dir_permissions": "755",但前提是服务器接受该组合 - 更稳妥做法:上传后立刻执行远程命令,按
Ctrl+Shift+P→ 输入SFTP: Execute Command→ 填chmod 644 index.php - 如果总提示
Failed to write file却又显示Success,登服务器跑ausearch -m avc -ts recent查 SELinux 拦截日志
配置真正跑通的关键,不在 JSON 写得多漂亮,而在 SSH 层是否通、路径是否可写、权限是否被系统策略卡住——这些地方一出问题,插件连报错都懒得给你。
本文共计1247个文字,预计阅读时间需要5分钟。
Sublime Text 本身不支持 FTP 或 SFTP 上传,所谓的FTP 上传在 Sublime 中实际上只能通过 SFTP(SSH 文件传输协议)实现。这需要依赖第三方插件,目前唯一可用且维护良好的选项是 SFTP 插件(wbond 版本)。但请注意,这个插件 不兼容 FTP 协议,也不支持纯 FTP 服务器。如果你的服务器只开启了 FTP(非 SFTP),则该插件无法使用。
Sublime 安装 SFTP 插件必须用 Package Control,手动放文件夹无效
手动下载 zip、解压到 Packages/ 目录会导致插件初始化失败:菜单不出现、右键无 SFTP 选项、命令面板搜不到相关命令。
- 先确认已装
Package Control:按Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Install Package Control回车 - 再按
Ctrl+Shift+P→ 输入Package Control: Install Package回车 - 等列表加载完,搜
SFTP,**只选作者为wbond的那个**(别选sftp-client、FTPSync等仿品) - 安装后必须重启 Sublime Text,否则
Project菜单和右键菜单不会显示SFTP
sftp-config.json 必须放在项目根目录,字段错一个就静默失败
插件不报红框错误,只在状态栏闪一下文字,然后没反应——这是最常被忽略的点。配置文件名必须是 sftp-config.json,编码为 UTF-8 无 BOM,且必须位于你通过 Project → Add Folder to Project 加入的本地项目根目录下。
-
"host":只填 IP 或域名,**不能带ftp://或sftp://前缀**,例如"host": "192.168.1.100" -
"user":SSH 用户名,不是控制面板账号;若用密钥登录,"password"字段必须删掉或留空 -
"ssh_key_file":路径必须是**绝对路径**,Linux/macOS 下如"/home/you/.ssh/id_rsa",Windows 下如"C:/Users/You/.ssh/id_rsa"(正斜杠更稳) -
"remote_path":必须以/开头的**绝对路径**,例如"/var/www/html/";结尾加/影响上传目标位置,不加可能传错目录 -
"port":默认 22,如果服务器改过 SSH 端口,必须显式写上,比如"port": 2222
upload_on_save 不生效?大概率是项目没绑定或路径不匹配
设了 "upload_on_save": true 却没上传,不是插件坏了,而是 Sublime 根本不知道该把当前文件同步到哪——它只对“属于某个 SFTP 项目的文件”起作用。
- 必须通过侧边栏右键本地项目根文件夹 →
SFTP → Map to Remote…,才能生成有效配置并自动绑定 - 或者手动创建
.sublime-project文件,并在里面嵌入sftp配置块(仅推荐高级用户) - 文件本地路径需能映射到
remote_path:比如remote_path是/var/www/html/,你编辑的是js/app.js,那它会被传到/var/www/html/js/app.js;但如果编辑的是../config.php,就不会上传 - 网络慢时默认 3 秒超时,可在配置里加
"timeout": 10提高容错
上传成功但网页 500?别怪插件,看权限和 SELinux
SFTP 插件只负责搬运字节,不处理 Web 服务器上下文。上传后 PHP 报 500、CSS 不加载,几乎全是权限或安全模块拦截导致。
- 默认上传文件权限是
644,目录是755,但有些环境(如 suPHP、open_basedir)要求脚本属主匹配或权限更严格 - 可在配置中加
"file_permissions": "644"和"dir_permissions": "755",但前提是服务器接受该组合 - 更稳妥做法:上传后立刻执行远程命令,按
Ctrl+Shift+P→ 输入SFTP: Execute Command→ 填chmod 644 index.php - 如果总提示
Failed to write file却又显示Success,登服务器跑ausearch -m avc -ts recent查 SELinux 拦截日志
配置真正跑通的关键,不在 JSON 写得多漂亮,而在 SSH 层是否通、路径是否可写、权限是否被系统策略卡住——这些地方一出问题,插件连报错都懒得给你。

