如何从一行、三行输入 SSH 私钥

Pid*_*una 4 ssh awk sed private-key ssh-keys

我有 ssh 密钥,类似这样的东西

-----BEGIN RSA PRIVATE KEY----- my_super_secret_password -----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

当然这个键不起作用。当我在做手工的时候,像这样的东西

-----BEGIN RSA PRIVATE KEY----- 
my_super_secret_password 
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

有用。当我删除 this-----BEGIN RSA PRIVATE KEY-----和 this 时-----END RSA PRIVATE KEY-----,我的 ssh-key 不起作用。

所以,问题。如何,我可以通过一些命令自动制作,比如sedor 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-----
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。如果你知道关于这个问题的任何其他答案,我很高兴听到你的消息。原因,为什么我需要它,因为我在AWS Secret Manager. 因此,该管理器仅将密钥存储在一行中。

Cra*_*son 10

我会亲自对密钥进行 base64 编码、存储,然后在需要时对其进行 base64 解码。

编码:

echo "-----BEGIN RSA PRIVATE KEY----- my_super_secret_password -----END RSA PRIVATE KEY-----" | openssl base64 | tr -d '\n'
Run Code Online (Sandbox Code Playgroud)

解码:

echo "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLSBteV9zdXBlcl9zZWNyZXRfcGFzc3dvcmQgLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K" | openssl base64 -A -d
Run Code Online (Sandbox Code Playgroud)


Sir*_*rex 1

像这样的事情,快速而老套。

echo "-----BEGIN RSA PRIVATE KEY----- my_super_secret_password -----END RSA PRIVATE KEY-----" | sed 's/\(KEY----- \)/\1\n/' | sed 's/\(-----END\)/\n\1/'
Run Code Online (Sandbox Code Playgroud)