web-dev-qa-db-fra.com

Comment faire en clé privée SSH d'une ligne, trois lignes

j'ai une clé SSH, quelque chose comme ça

-----BEGIN RSA PRIVATE KEY----- my_super_secret_password -----END RSA PRIVATE KEY-----

Bien sûr, cette clé ne fonctionne pas. Quand je fais des choses manuelles, quelque chose, comme ça

-----BEGIN RSA PRIVATE KEY----- 
my_super_secret_password 
-----END RSA PRIVATE KEY-----

Ça marche. Quand je supprime ce -----BEGIN RSA PRIVATE KEY----- et ça -----END RSA PRIVATE KEY-----, ma clé SSH ne fonctionne pas.

Donc, la question. Comment, je peux faire automatiquement via une commande, comme sed ou awk ou une autre commande, comment puis-je faire de cette chaîne

-----BEGIN RSA PRIVATE KEY----- my_super_secret_password -----END RSA PRIVATE KEY-----

ces trois cordes

-----BEGIN RSA PRIVATE KEY----- 
my_super_secret_password 
-----END RSA PRIVATE KEY-----

Merci de votre aide. Si vous connaissez une autre réponse sur cette question, je suis heureux de vous entendre. La raison, pourquoi j'en ai besoin, car j'ai le stockage de clés secrètes dans AWS Secret Manager. Ce manager stocke donc des clés uniquement en une seule ligne.

3
Piduna

Je ferais personnellement la base64-coder la clé, le stocker, puis la base64 décode quand vous en avez besoin.

Encoder:

echo "-----BEGIN RSA PRIVATE KEY----- my_super_secret_password -----END RSA PRIVATE KEY-----" | openssl base64 | tr -d '\n'

Décoder:

echo "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLSBteV9zdXBlcl9zZWNyZXRfcGFzc3dvcmQgLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K" | openssl base64 -A -d
4
Craig Watson

Quelque chose comme ça, rapide et hacky.

echo "-----BEGIN RSA PRIVATE KEY----- my_super_secret_password -----END RSA PRIVATE KEY-----" | sed 's/\(KEY----- \)/\1\n/' | sed 's/\(-----END\)/\n\1/'
0
Sirex