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

如何修改sed命令去除AWS SSM私钥输出结尾的多余字符?

解决AWS SSM Parameter Store提取私钥后结尾多余字符的问题

我之前也碰到过一模一样的情况!你当前的sed命令只处理了私钥开头的多余内容,但没对结尾的冗余字符(比如你提到的“2”)做处理,所以才会出现这个问题。

这里给你两个靠谱的修改方案:

方案1:精准截取私钥的完整块

这个方法直接匹配私钥的起始和结束标记,只打印这两行之间的内容(包括标记本身),完全过滤掉前后的多余字符:

aws --region=us-east-1 ssm get-parameters --names "mykey" --with-decryption --output text 2>&1 | sed -n '/----BEGIN RSA PRIVATE KEY----/,/----END RSA PRIVATE KEY----/p' > id_rsa

原理:-n参数让sed只打印我们指定的内容,/A/,/B/p表示打印从匹配A的行到匹配B的行之间的所有内容,完美规避前后的无关输出。

方案2:基于原命令调整,同时处理首尾

如果你想沿用原来的命令逻辑,可以给sed追加第二个替换规则,把结束标记后的所有冗余内容清空:

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

原理:分号分隔两个sed命令,第一个处理开头的多余前缀,第二个用.*匹配结束标记后的所有字符,替换成纯净的结束标记。

最后别忘了关键一步

私钥文件的权限必须严格限制(不能让其他用户读取),否则SSH会直接拒绝使用这个密钥,生成文件后记得执行:

chmod 600 id_rsa

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:54:52