You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure流水线中Terraform OCI提供商私钥OpenSSL校验失败问题

报错根本原因分析

1. 核心问题

你遇到的OpenSSL ASN.1编码报错,本质是Azure DevOps流水线库的安全文件存储机制会对上传的文件进行额外格式处理,和你本地仓库中的原始私钥文件格式不一致,导致OpenSSL、Terraform OCI提供商无法识别PEM格式的私钥结构。

2. 具体常见诱因

  • 上传安全文件时平台自动转换换行符:将Unix格式的\n替换为Windows格式的\r\n,破坏了PEM文件的头尾标识结构
  • 安全文件被平台额外做了Base64编码:下载到代理节点的文件是编码后的值,不是原始PEM明文内容
  • 私钥文件被自动添加了UTF-8 BOM头:PEM解析器无法识别BOM头,会将其当做文件内容处理,导致ASN.1解码失败
验证与修复方案
  1. 先确认文件是否被篡改:在流水线中添加任务输出安全文件的MD5值,和本地正常私钥文件的MD5值对比
md5sum $TF_VAR_private_key_path

如果两者结果不一致,即可确认安全文件在存储/下载过程中被修改。
2. 格式清理修复:在下载安全文件的任务后,添加如下脚本任务处理文件格式

# 移除文件头部的UTF-8 BOM标识
sed -i '1s/^\xEF\xBB\xBF//' $TF_VAR_private_key_path
# 将换行符统一为Unix格式
dos2unix $TF_VAR_private_key_path

# 如验证发现文件被Base64编码,额外执行解码操作
# base64 -d $TF_VAR_private_key_path > fixed_private_key.pem && mv fixed_private_key.pem $TF_VAR_private_key_path
  1. 校验修复后的私钥文件
openssl rsa -in $TF_VAR_private_key_path -check

校验通过后再执行terraform plan即可恢复正常。

内容的提问来源于stack exchange,提问作者AnjK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:24:00