一、环境准备
1. 安装插件
- 在 VS Code 扩展商店搜索 "SFTP" 或 "SFTP/FTP sync"
- 推荐使用
liximomo.sftp 插件
2. 基本配置结构
项目根目录/
├── .vscode/
│ └── sftp.json # 配置文件
├── 本地文件...
└── 远程同步的文件...
二、配置多服务器同步
单服务器配置示例 (sftp.json):
{
"name": "服务器名称",
"host": "服务器IP或域名",
"protocol": "sftp",
"port": 22,
"username": "用户名",
"password": "密码",
// 或使用私钥认证
"privateKeyPath": "~/.ssh/id_rsa",
"remotePath": "/var/www/html",
"uploadOnSave": true,
"ignore": [
"**/.vscode/**",
"**/.git/**",
"**/node_modules/**"
]
}
多服务器配置方法:
方法1:多配置文件(推荐)
创建不同的配置文件对应不同服务器:
.vscode/
├── sftp-server1.json
├── sftp-server2.json
├── sftp-server3.json
└── sftp.json # 主配置文件(使用连接符)
主配置文件 (sftp.json):
{
"protocol": "sftp",
"profiles": {
"server1": "sftp-server1.json",
"server2": "sftp-server2.json",
"server3": "sftp-server3.json"
}
}
方法2:单文件多配置
{
"contexts": [
{
"name": "测试服务器",
"host": "test.example.com",
"username": "user1",
"remotePath": "/var/www/test",
"uploadOnSave": false
},
{
"name": "生产服务器",
"host": "prod.example.com",
"username": "user2",
"remotePath": "/var/www/prod",
"uploadOnSave": false
}
]
}
三、基本操作流程
1. 连接服务器
- 按
F1 → 输入 SFTP: Config
- 选择要连接的服务器配置
- 按
Ctrl+Shift+P → SFTP: List
2. 同步操作
常用命令:
- SFTP: Upload # 上传当前文件
- SFTP: Download # 下载当前文件
- SFTP: Upload Project # 上传整个项目
- SFTP: Download Project # 下载整个项目
- SFTP: Sync to Remote # 同步到远程
- SFTP: Sync to Local # 同步到本地
- SFTP: Diff # 对比差异
3. 快捷键配置(settings.json)
{
"sftp.autoUploadDelay": 1000,
"sftp.autoDownload": false,
"sftp.autoUpload": false
}
四、高级功能
1. 自动同步配置
{
"name": "自动同步服务器",
"host": "192.168.1.100",
"remotePath": "/home/project",
"uploadOnSave": true,
"syncMode": "update",
"watcher": {
"files": "**/*",
"autoUpload": true,
"autoDelete": true
}
}
2. 忽略规则
"ignore": [
"**/.vscode/**",
"**/.git/**",
"**/node_modules/**",
"**/tmp/**",
"**/*.log",
"*.{jpg,png,gif}"
]
3. 多环境同步脚本
创建 .vscode/sftp-tasks.json:
{
"tasks": [
{
"name": "同步到测试环境",
"command": "sftp upload",
"args": ["test"]
},
{
"name": "同步到生产环境",
"command": "sftp upload",
"args": ["prod"]
}
]
}
五、实际工作流程示例
场景:开发→测试→生产
1. 开发环境(本地)
- 创建配置文件:.vscode/sftp-test.json
- 创建配置文件:.vscode/sftp-prod.json
2. 测试阶段
- 选择测试服务器配置
- 按 Ctrl+Shift+P → SFTP: Upload Project
- 或设置 uploadOnSave: true 自动同步
3. 生产发布
- 切换到生产服务器配置
- 执行 SFTP: Diff 检查差异
- 执行 SFTP: Sync to Remote
最佳实践:
不要在生产环境设置 uploadOnSave: true
使用 SSH 密钥认证替代密码
配置完善的 ignore 规则
同步前先进行差异对比
重要的生产同步先备份
六、常见问题解决
权限问题:
"permissions": {
"owner": "www-data",
"group": "www-data",
"mode": "0755"
}
连接超时:
"connectTimeout": 10000,
"keepaliveInterval": 10000
大文件传输:
"concurrency": 1,
"limitOpenFilesOnRemote": 10
七、替代方案
如果 SFTP 插件不能满足需求,可以考虑:
- Remote - SSH:直接远程编辑
- FTPSimple:更简单的 FTP/SFTP
- 手动同步脚本 + Git
这样配置后,你就可以轻松管理多个服务器的文件同步工作了。