在Azure DevOps Pipeline中提供私有SSH密钥的最佳方法是什么?

时间:2019-06-07 17:02:26

标签: linux bash azure ssh azure-devops

我正在使用Terraform构建Azure DevOps管道。管道将创建一个Linux服务器,然后登录到Linux服务器以更新软件包并安装Apache。

我当前正在将私钥存储在我的BitBucket存储库中(我知道,这不是最佳实践),然后将其拉到构建代理服务器上,然后使用以下命令登录到新服务器:

ssh -f -q -o BatchMode=yes -o StrictHostKeyChecking=no -i ../private_key.pem ubuntu@$ip sudo apt update -y

在Azure DevOps中存储然后检索私钥的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

我能想到的两个选择:

1)在天蓝色的DevOps中创建ssh服务连接。在管道中引用服务连接。 https://medium.com/@sibeeshvenu/ssh-deployment-task-in-azure-pipelines-b0e2923bd7b4

2)将SSH密钥存储为Azure Key Vault机密,然后在构建过程中使用Azure CLI下载该机密。

az keyvault secret download --name mysshkey --vault-name mykeyvault --file ~/.ssh/id_rsa

使用服务主体对Azure CLI进行身份验证,并使用变量组将凭据提供给管道。

答案 1 :(得分:0)

我发现Azure DevOps为您提供了上载秘密文件的功能,这是该构建的一部分。您可以在此处查看更多信息:

https://docs.microsoft.com/en-us/azure/devops/pipelines/library/secure-files?view=azure-devops