у меня есть ssh-ключ, что-то вроде этого
-----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-ключ не работает.
Итак, вопрос. Как я могу сделать автоматически с помощью какой-нибудь команды, например 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
. Итак, этот менеджер хранит ключи только в одной строке.
Я бы лично кодировал ключ 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
Что-то вроде этого, быстро и хитро.
echo "-----BEGIN RSA PRIVATE KEY----- my_super_secret_password -----END RSA PRIVATE KEY-----" | sed 's/\(KEY----- \)/\1\n/' | sed 's/\(-----END\)/\n\1/'