【发布时间】:2021-10-22 07:42:05
【问题描述】:
在 CodeBuild 运行期间,我从 SecretsManager 检索 rsa 密钥,这是用于访问 BitBucket 中的私有源的私有密钥。为此,我将私钥复制到一个秘密中,然后在我的 buildspec 文件中,我有以下 sn-p:
"env": {
"secrets-manager": {
"LOCAL_RSA_VAR": "name-of-secret"
}
},
在构建规范的安装部分:
"install": {
"commands": [
"echo $LOCAL_RSA_VAR" > ~/.ssh/id_rsa,
"chmod 600 ~/.ssh/id_rsa",
"yarn install"
]
},
但是,这总是以错误告终:
Load key "/root/.ssh/id_rsa": invalid format
git@bitbucket.org: Permission denied (publickey).
fatal: Could not read from remote repository.
为了确定密钥是否错误,我尝试将 rsa_id 文件上传到 S3,然后从那里下载并使用以下命令来使用它:
"install": {
"commands": [
"aws s3 cp s3://the-bucket-name/id_rsa ~/.ssh/id_rsa",
"chmod 600 ~/.ssh/id_rsa",
"yarn install"
]
},
这很好用。
所以我想问题是......有没有人尝试过这个并且取得了更好的成功?你能想到我做的不对吗?
【问题讨论】:
-
您能否重命名 ~/.ssh/id_rsa 文件中的 1 个文件并执行 diff 和/或 od -ax?回声可能会弄乱它或权限?(例如,尝试交换回声(添加触摸)和chmod);只是一些想法-希望它有所帮助
-
查找 ~/.ssh/id_rsa 并确保它是您认为的 - 确保它是纯文本格式
-
感谢您的建议。事件虽然“捕获”秘密管理器 env 变量不起作用(它只是打印 ***),但我能够区分文件的内容与 env var,后者反过来打印内容,因为它们不同。这导致我进行调整,最终解决了问题。再次感谢!
标签: environment-variables ssh-keys aws-codepipeline aws-codebuild aws-secrets-manager