VSCode 原生不支持自动上传,需依赖第三方 SFTP 插件。配置核心在于正确的路径映射、权限设置及选择维护良好的插件版本。
先说结论:VSCode 必须依赖第三方插件实现自动上传,配置核心在于正确的路径映射和权限设置。注意原 liximomo 版本已下架,建议使用社区维护版本。
- 适合:本地开发、远程运行环境,且需要保存即同步的轻量级部署场景。
- 先准备:确认服务器 SSH 服务已开启,本地已生成 SSH 密钥或知晓登录密码。
- 验收:保存文件后状态栏显示 SFTP: done,且服务器文件修改时间同步更新。
插件选择与安装
在扩展市场搜索 SFTP,注意原 liximomo 开发的版本已停止维护或下架。建议尝试搜索“SFTP”后选择下载量较高且近期有更新的社区维护版本(如 Natizyskunk fork 版本)或 FoxSSH 等替代方案,避免使用名称相似但维护停滞的插件。
配置文件生成与填写
1. 生成配置:打开项目文件夹,使用快捷键 Ctrl+Shift+P 打开命令面板,输入 SFTP: Config 回车,系统会自动生成 .vscode/sftp.json 文件。
2. 填写参数:在配置文件中填写 host、username、remotePath 等关键信息。以下是完整配置模板,可直接参考修改:
{
"name": "My Server",
"host": "192.168.1.100",
"protocol": "sftp",
"port": 22,
"username": "root",
"password": "your_password",
"remotePath": "/var/www/html",
"uploadOnSave": true,
"ignore": [
".vscode",
".git",
"node_modules",
".env"
],
"privateKeyPath": "/Users/yourname/.ssh/id_rsa"
}注意:若使用密钥登录,填写 privateKeyPath 为本地私钥绝对路径;若使用密码登录,填写 password 字段。uploadOnSave 必须为布尔值 true。
密钥权限设置
若使用 SSH 密钥登录,确保私钥文件权限设置正确,否则会导致认证失败。在本地终端执行以下命令设置权限:
chmod 600 ~/.ssh/id_rsa同时确保配置文件位于项目根目录的 .vscode 文件夹下,文件名需严格为 sftp.json,放在用户全局设置中无效。
验证同步是否生效
1. 状态栏观察:保存任意代码文件后,观察 VSCode 左下角状态栏,若出现 SFTP: connecting 随后变为 SFTP: done,表示上传成功。
2. 服务器核对:登录服务器查看对应 remotePath 下的文件,确认文件修改时间与本地保存时间一致。
3. 日志检查:若状态栏卡在 connecting 或报错,查看 VSCode 输出面板中的 SFTP 日志,确认是认证失败还是路径错误。
常见坑与排查
1. 路径权限不足:remotePath 指定的目录必须存在且当前登录用户有写入权限,否则插件不会报错但文件不会出现。
2. 密钥格式错误:插件只支持 OpenSSH 格式私钥,若使用 PuTTY 生成的 ppk 文件需转换格式。
3. 敏感文件泄露:uploadOnSave 不会自动排除环境变量文件,务必在 ignore 规则中加入 .env、config.php 等包含密码的文件。
4. 网络连通性:配置后无法同步,优先在本地终端执行 ssh user@host 确认基础连接正常。