我正在使用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中存储然后检索私钥的最佳方法是什么?
答案 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