如何解决如何在 Azure Devops 发布管道中读取多行 Azure Key Vault 机密
我在 Azure 发布管道中使用多行 Azure Key Vault 值时遇到问题...
我将一个多行值(RSA 私钥)放入 Azure Key Vault using the CLI:
az keyvault secret set --vault-name "vault" --name "secret" --file "pk.pem"
这有效,我可以在门户中看到多行秘密。
在本地使用 CLI 我也可以:
pk=$(az keyvault secret show \
--name "ssh-private-key" \
--vault-name $vault \
--query "value")
这会返回一个有点糟糕的值(是的,包括双引号):
"-----开始 RSA 私钥-----\nMIIG4wIBAA .... JtpyW\n-----结束 RSA 私钥-----\n"
我可以设法使用它并将值发送到文件中,如下所示:
pk="${pk%\"}" #remove first quote
pk="${pk#\"}" #remove last quote
echo $pk | sed 's|\\n|\n|g' | # replace with actual newlines
while IFS= read -r line; do # loop through lines
echo "$line" >> pk.pem # write to file per line
done
这有效,我可以使用 ssh -i pk.pem user@server
但是当在 Azure Devops Release 管道中运行相同的脚本(也在 Linux 代理上使用 Bash)时,完全相同的脚本失败了......我也无法检查实际值,因为日志掩盖了与秘密...
关于如何调试或实际读取多行值而不是仅仅存储它们的任何指南将不胜感激!
解决方法
以下是故障排除建议:
错误“Host key verification failed.
”不仅仅在密钥不正确时发生。大多数情况下,它不是指您的密钥。
所以我建议您首先尝试使用简单值的连接,看看它是否适用于 Azure DevOps。
此外,也许 SSH service connection 可以帮助您完成您正在做的事情。进入项目设置 -> 服务连接 -> 创建服务连接 -> SSH 创建一个。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。