【发布时间】: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-----/'