You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure DevOps流水线将GitHub Enterprise仓库master分支文件复制到Linux VM

可行实现方案

方案1:通过SSH密码认证直接传输文件(无需额外资源、无需配置私钥)

你之前了解的SSH任务默认推荐私钥认证,但实际Azure DevOps官方提供的通过SSH复制文件任务原生支持用户名+密码认证,不需要在目标VM提前配置任何密钥,仅需VM开启SSH密码登录权限即可:

  1. 先在流水线中添加检出任务,拉取GitHub Enterprise仓库master分支的所有代码到流水线构建目录
  2. 在Azure DevOps项目的「服务连接」中新建SSH连接,填写目标VM的IP、SSH端口、登录用户名,认证方式选择密码,输入VM的登录密码后保存连接
  3. 流水线中添加「通过SSH复制文件」任务,选择刚才创建的SSH服务连接,源文件夹选择$(Build.SourcesDirectory)(即代码检出的根目录),内容填写**/*(匹配所有文件和子目录),目标文件夹填写Linux VM上的指定目录即可。

方案2:目标VM主动拉取代码(配置更简单、传输速度更快)

如果你的Linux VM可以正常访问GitHub Enterprise,可直接省略文件中转传输步骤,让VM主动拉取代码:

  1. 首次操作时登录目标VM,在你需要的指定目录下执行git clone <GitHub Enterprise仓库地址> .拉取完整master分支代码
  2. 在VM上创建执行脚本/opt/pull_code.sh,内容如下:
#!/bin/bash
cd /你的/目标/目录
git fetch origin
git reset --hard origin/master

执行chmod +x /opt/pull_code.sh给脚本添加执行权限
3. 流水线中仅需添加1个SSH任务(同样用密码认证的SSH服务连接),执行命令/opt/pull_code.sh即可完成所有文件的同步。

额外优化(可选)

如果你的Linux VM是Azure托管资源,还可以用Azure CLI run-command功能执行拉取操作,不需要将VM的SSH端口暴露到公网,安全性更高:

  1. 在Azure DevOps中配置Azure Resource Manager服务连接
  2. 流水线中添加Azure CLI任务,执行命令:
    az vm run-command invoke -g <VM资源组名称> -n <VM名称> --command-id RunShellScript --scripts "cd /你的/目标/目录 && git fetch origin && git reset --hard origin/master"

内容的提问来源于stack exchange,提问作者Noor Basha Shaik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 13:57:04