linux - 在 Azure DevOps Pipeline 中提供 SSH 私钥的最佳方式是什么?

标签 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 中存储和检索私钥的最佳方式是什么?

最佳答案

我能想到的两个选择:

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

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

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

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

关于linux - 在 Azure DevOps Pipeline 中提供 SSH 私钥的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56498563/

相关文章:

linux - 客户端 UDP 套接字绑定(bind)

linux - 如何在备份脚本中实现进度条

c++ - 如何在 C++ 代码中获取终端维度?

python - 在Linux上自动安装conda

azure - 如何通过逻辑应用发送 997 ACK

c# - 从云服务中的 Azure 文件访问挂载

.net - Azure 部署 .NET 应用部署脚本

c++ - 系统头文件中的条件编译

javascript - 在nodejs应用程序内执行bash命令(具有root访问权限)

Python Popen shell 脚本但失败