SFTP 插件可实现 VSCode 本地与远程服务器的双向实时同步。需安装插件、配置。sftp.json(含 host、remotePath、uploadOnSave 等)、启用 watcher、设置排除规则及密钥认证,支持保存即上传、手动上传 / 下载 / 比对等功能。

如果您在使用 VSCode 编辑本地代码,同时需要将修改实时上传至远程服务器,或从服务器拉取最新文件覆盖本地,SFTP 插件可建立稳定、可配置的双向文件同步通道。以下是实现该同步功能的具体操作步骤:
本文运行环境:MacBook Air,macOS Sequoia。
一、安装并配置 SFTP 插件
SFTP 插件(如 NTVDM 的“SFTP”扩展)提供基于 SSH 协议的文件传输能力,通过配置连接参数与同步规则,使 VSCode 能识别远程路径结构并执行自动或手动同步。需确保远程服务器已启用 SSH 服务且 端口 开放。
1、打开 VSCode,点击左侧扩展图标(或按 Cmd+Shift+X),在搜索框中输入 SFTP。
2、在搜索结果中找到作者为 Nebula-Dev 的“SFTP”插件,点击“Install”完成安装。
3、在任意项目根目录下,右键选择 SFTP: Config,自动生成 .sftp.json 配置文件。
4、在生成的 .sftp.json 中填写 host、port、username、remotePath 和 uploadOnSave 设为 true。
二、设置保存即上传模式
启用 uploadOnSave 后,每次保存本地文件时,插件将自动比对时间戳并仅上传变更内容,避免全量覆盖,提升效率并降低误覆盖风险。
1、打开项目根目录下的 .sftp.json 文件。
2、确认 “uploadOnSave”: true 已存在且值为布尔真。
3、确保 “watcher”: {“files”: “**/*”, “autoUpload”: true} 区块已添加至配置顶层。
4、重启 VSCode 窗口使 watcher 生效。
三、手动触发双向同步
当需强制同步整个目录或处理冲突时,可通过命令面板调用内置同步指令,支持上传(本地→远程)、下载(远程→本地)及双向比对三种模式。
1、按下 Cmd+Shift+P 打开命令面板。
2、输入 SFTP: Upload Folder 并回车,选择当前文件夹上传全部内容。
3、输入 SFTP: Download Folder 并回车,将远程对应路径完整拉取至本地。
4、输入 SFTP: Diff Local and Remote 可并列查看差异文件列表,并逐个选择同步方向。
四、配置忽略文件与路径映射
通过 exclude 和 nameRegexps 字段可排除日志、临时文件等非必要同步项;remotePath 与 localPath 的映射关系则允许本地子目录对应远程不同路径层级,适配复杂部署结构。
1、在 .sftp.json 的配置对象中添加 “exclude”: [“*.log”, “.DS_Store”, “node_modules/**”]。
2、添加 “nameRegexps”: [“.*\.swp$”, “.*~$”] 以忽略 Vim 临时文件。
3、若本地 src/ 目录需映射至远程 /var/www/html/,则设置 “localPath”: “src/”, “remotePath”: “/var/www/html/”。
五、使用密钥认证替代密码登录
启用 privateKey 路径配置后,插件将跳过密码提示,直接加载本地私钥完成 SSH 认证,提升安全性与自动化兼容性,尤其适用于 CI/CD 场景或禁用密码登录的服务器。
1、确认私钥文件(如 id_rsa)权限为 600,执行 chmod 600 ~/.ssh/id_rsa。
2、在 .sftp.json 中添加字段 “privateKey”: “~/.ssh/id_rsa”。
3、删除配置中的 password 字段,避免明文密码残留。
4、测试连接:右键 资源管理器 中任意文件,选择 SFTP: Connect to Server,验证是否免密直连成功。