Windows系统下VS Code如何通过SSH实现文件自动上传部署
完全可以通过PowerShell或者npm工具实现自动上传,两种方案的可落地实现方法如下:
方案1:PowerShell 原生实现(无需额外安装依赖)
Win10 1809以上版本、Win11默认自带OpenSSH客户端,直接可以用scp命令实现上传,不需要额外装软件。
- 基础单目录/文件上传命令示例:
上传本地dist目录下所有文件到服务器/opt/app路径:scp -r ./dist/* root@192.168.1.100:/opt/app/ - 免密配置:把本地
C:\Users\你的用户名\.ssh\id_rsa.pub的内容,追加到服务器~/.ssh/authorized_keys文件中,后续上传不需要输入密码。 - 自动化脚本编写:
在项目根目录新建deploy.ps1文件,内容参考:# 自定义配置项 $localPath = "./dist/*" $remoteUser = "root" $remoteIp = "192.168.1.100" $remotePath = "/opt/app/" # 执行上传 scp -r $localPath "${remoteUser}@${remoteIp}:${remotePath}" Write-Host "✅ 所有文件上传完成" - 执行方式:
项目目录打开PowerShell,执行./deploy.ps1即可。如果提示权限不足,管理员打开PowerShell执行Set-ExecutionPolicy RemoteSigned,选择Y确认后即可正常运行脚本。
也可以把命令添加到package.json的scripts中:"deploy": "powershell ./deploy.ps1",后续直接执行npm run deploy即可触发上传。
方案2:npm 工具实现(适合前端项目,灵活度更高)
如果是前端项目,可以直接用npm生态的成熟SSH上传包实现,以下是scp2包的最简实现步骤:
- 第一步:安装开发依赖
npm install scp2 --save-dev - 第二步:根目录新建
deploy.js配置文件,内容参考:const client = require('scp2') // 远程服务器配置 const serverConfig = { host: '192.168.1.100', port: 22, username: 'root', // 认证方式二选一:密码 或 本地私钥 // password: '你的服务器登录密码', privateKey: require('fs').readFileSync('C:/Users/你的用户名/.ssh/id_rsa') } // 执行上传 client.scp('./dist/*', { ...serverConfig, path: '/opt/app/' }, err => { if (err) { console.error('❌ 上传失败:', err) process.exit(1) } console.log('✅ 所有文件上传完成') }) - 第三步:配置执行命令
在package.json的scripts字段中添加:"deploy": "npm run build && node deploy.js"
后续执行npm run deploy就会自动完成项目构建、产物上传全流程。
注意:不要在代码中硬编码服务器密码,优先使用SSH私钥认证,避免敏感信息泄露
内容的提问来源于stack exchange,提问作者Kez
相关产品推荐
相关产品推荐

