【问题标题】:aws ssm get-parameter rsa key output to fileaws ssm 获取参数 rsa 密钥输出到文件
【发布时间】:2021-09-24 18:40:37
【问题描述】:

我已将我的私钥文件存储在 AWS SSM 参数存储中。我想只从参数存储中检索私钥值,并使用 aws cli 在本地将其保存为 id_rsa 文件。

这篇文章:https://github.com/aws/aws-cli/issues/2742 向我展示了如何使用 sed 做到这一点。但是我仍然会在"-----END RSA PRIVATE KEY-----" 之后返回一个字符,我想使用sed 删除它。

这是我在命令行上运行的命令:

aws --region=us-east-1 ssm get-parameters --names "mykey" --with-decryption --output text 2>&1 | sed 's/.*----BEGIN/----BEGIN/'

输出是:

----BEGIN RSA PRIVATE KEY-----
some text here
-----END RSA PRIVATE KEY-----   2

注意最后一行末尾的2。我也想摆脱-----END RSA PRIVATE KEY-----之后的任何东西。

我需要在sed 命令中添加什么来实现这一点?

【问题讨论】:

  • 为什么需要2>&1?您是否将标准错误重定向到标准输出?为什么?删除 2>&1 应该可以解决您的问题。
  • 我确实删除了2>&1,因为你是对的,不需要它。但是,这仍然不会删除最后一行末尾的尾随 2。因此,通过添加以下内容确实给了我想要的输出:sed 's/KEY-----.*/KEY-----/'

标签: amazon-web-services sed


【解决方案1】:

您可以使用以下命令单独获取该值:

aws --region=us-east-1 ssm get-parameter --name "mykey" --with-decryption --output text --query Parameter.Value

即通过使用--query Parameter.Value选择值

然后您可以不使用 sed 将其直接通过管道传输到文件。

【讨论】:

【解决方案2】:

附加选项:

aws --region=us-east-1 ssm get-parameters --names "mykey" --with-decryption | jq -r '.Parameter.Value'

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
【解决方案3】:

这一行解决了我的问题:

aws --region=us-east-1 ssm get-parameters --names "mykey" --with-decryption --output text 2>&1 | sed 's/.*----BEGIN/----BEGIN/' | sed 's/KEY-----.*/KEY-----/' > id_rsa

【讨论】:

    猜你喜欢
    • 2018-02-03
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 2023-04-11
    • 2022-07-06
    相关资源
    最近更新 更多