Конвертируйте однолинейный закрытый SSH-ключ RSA в многострочный - PullRequest
0 голосов
/ 28 мая 2019

У меня есть эти закрытые ключи, которые были преобразованы в эквивалент одной строки.

Этих ключей довольно много.

Поэтому я решил потратить некоторое время на написание скрипта для конвертации.

Это не принесло многого.

-----BEGIN RSA PRIVATE KEY----pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4= pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4= pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4= pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4= pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4= -----END RSA PRIVATE KEY-----

Я использую echo ~/.ssh/id_rsa | tr " " "\n"

Возвращает:

-----BEGIN 
RSA 
PRIVATE 
KEY----- 
pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=
pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=
pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=
pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=
pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=pEdInVAbH4d0PH4=
-----END
RSA
PRIVATE
KEY-----

Я пытался найти наилучший из возможных способов вернуть его в правильный формат.

Ответы [ 2 ]

3 голосов
/ 28 мая 2019

Предполагая, что стандартный закрытый ключ RSA, который только что удалил переводы строки, пара sed замен вернет вас к исходному формату:

sed -e "s/-----BEGIN RSA PRIVATE KEY-----/&\n/"\
    -e "s/-----END RSA PRIVATE KEY-----/\n&/"\
    -e "s/\S\{64\}/&\n/g"\
    ~/.ssh/id_rsa

Стандартный формат ключа требует BEGINи END операторы должны находиться в отдельной строке, а ключ в кодировке base64 - в 64 столбцах.Приведенная выше команда доставит вас туда.

0 голосов
/ 28 мая 2019

@ robby Благодаря вашему ответу я адаптировал следующее, которое сработало для меня.

sed -e "s/-----BEGIN RSA PRIVATE KEY-----/&\n/" -e "s/\S\{64\}/&\n/g" | sed "s/^\s//g" ~/.ssh/id_rsa
...