我有 ssh-key,类似这样
-----BEGIN RSA PRIVATE KEY----- my_super_secret_password -----END RSA PRIVATE KEY-----
当然,这个键不起作用。当我手动操作时,会出现这样的情况
-----BEGIN RSA PRIVATE KEY-----
my_super_secret_password
-----END RSA PRIVATE KEY-----
可以了。当我删除这个-----BEGIN RSA PRIVATE KEY-----
和这个时-----END RSA PRIVATE KEY-----
,我的 ssh-key 不起作用。
那么,问题是。我怎样才能通过某些命令(例如sed
或awk
或任何其他命令)自动制作,我怎样才能从这个字符串制作
-----BEGIN RSA PRIVATE KEY----- my_super_secret_password -----END RSA PRIVATE KEY-----
这三根弦
-----BEGIN RSA PRIVATE KEY-----
my_super_secret_password
-----END RSA PRIVATE KEY-----
感谢您的帮助。如果您知道关于这个问题的其他答案,我很高兴听到您的回答。我需要它的原因是,我在 中存储了密钥AWS Secret Manager
。因此,此管理器仅在一行中存储密钥。
答案1
我个人会对密钥进行 base64 编码,存储它,然后在需要时对其进行 base64 解码。
编码:
echo "-----BEGIN RSA PRIVATE KEY----- my_super_secret_password -----END RSA PRIVATE KEY-----" | openssl base64 | tr -d '\n'
解码:
echo "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLSBteV9zdXBlcl9zZWNyZXRfcGFzc3dvcmQgLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K" | openssl base64 -A -d
答案2
就像这样,又快又老套。
echo "-----BEGIN RSA PRIVATE KEY----- my_super_secret_password -----END RSA PRIVATE KEY-----" | sed 's/\(KEY----- \)/\1\n/' | sed 's/\(-----END\)/\n\1/'