IHe*_*ple 5 linux ssh bash azure 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
Run Code Online (Sandbox Code Playgroud)
在 Azure DevOps 中存储和检索私钥的最佳方法是什么?
我能想到的两种选择:
1) 在 azure 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
Run Code Online (Sandbox Code Playgroud)
使用服务主体对 Azure CLI 进行身份验证,并使用变量组向管道提供凭据。
我发现 Azure DevOps 为您提供了一个功能来上传机密文件是构建的一部分。您可以在此处查看更多信息:
https://docs.microsoft.com/en-us/azure/devops/pipelines/library/secure-files?view=azure-devops