Как записать строку, содержащую закрытый ключ ssh в файл?

Я использую Azure DevOps для своего конвейера. У меня есть копия открытого и закрытого ключей. Открытый ключ уже добавлен на сервер в процессе создания с использованием Terraform.

В целях тестирования я создал переменную $ key для хранения закрытого ключа. Переменная является частью конвейера DevOps, и ее можно получить с помощью сценария bash на сервере сборки.

Я хочу использовать этот ключ для SSH на удаленном сервере. Когда я пытаюсь записать ключ $ в файл, а затем использовать его, например,

ssh user@10.10.10.10 -i keyfile

Меня спрашивают о парольной фразе. Я считаю, что это связано с форматом файла закрытого ключа. Он выглядит как длинная строка без разрывов строки.

При эхо-вызове закрытый ключ выглядит следующим образом:

-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAiyaucjBXLAy4yEFKez7b1uBUNmkycyAeOE3f9a37XqX9WRj46mH/cUE+18Oc DZWQyu5Pei3wRarv19E6XMLYcis63pbogncdIqHlvc25QLHKz+mZ6TQm/CDBKhK5GHifJSODcsNa YH7Gwy7y3T46LOicoz+cKhPm7McQ3uthSSsEZQyjlnOhQ+s4cjPa29rszlnp8HvMm+hniouCD2Kh b9/xv0yomh1d+pd3RtvdksqX4Zac0vmshpeMYZEVTPabhkfJksd8VnYYzGjjlf0Axxf+gSEM8Ime LGtdcefl4S/lNwLuYBZxjgqbSl23oHsT/ZmiWxIXfqBOHm6mcv+qLQIDAQABAoIBAGF6aX4Iqyhq iQ+P3XNU54AxigzLyNGpUEI1G4zpokv9j+rYeZcHq4BVKobPuwQxIEtogjie8dB8HKRdJ7tPq3zf F9BSevLaKojWTTCXaw0M/3yCspURObYp4+drUkr4RNQpeq3sd+VdKjQVMYEXVH2dPg2GRAmeA4kf MoxW68Hq1w2bByUnrrehoidu46r6KBlQyUApJmu5y2Xbo5izbyEoRQoGF0Sz2EHW2AckxTwMkovF 78dh8L3b3DAd0aAF8ijewA/aCy+gSzZzihGcpFMKVxVh5McrzssS74ThjaeKKnDRIPlP02je0rtf DOuWoivc9RP/o5nJvNU2qzLri4ECgYEA7edgmf/FVIrIBc8QqWpvF0WYhWMusgBm8DUvOGnnevPo MFRgNTAjl+rDKfTvOTnphYrEKYoLJTDpNZGvopSUsra5IANAcHSxM8dpUyXGqIlIC9rdzOQNZhON Ss/f4d9wT1fX8mWaIPiC0wC/s1V9fCRKDKARhc4mtIKlm+S7Wj0CgYEAlbxTLuoHN6Na7UOoPpp8 HEPGGItHx/QFHLwFuhe663xLaFIXqJsVgQUd88dUs5lRZ6ydGba6LeUNEOvFvHiSV7cj0YydvyJJ 7wjlu5Ge13fYTNm2uEDDhARLBum2Rx1wwBD/ovsjnevNjZeYU9ahZhiMjIv90RT7mTDLGiNBvrEC gYBWfXHfSt9gtvu1MOxryygMG98xTzeguwixd4RtTAM97gKR33sCmze1eUHutP9rnKRLSoG6YFdg 9AE02nwx7TaKKmfvPX9l4uaxXmPqOKeaih5JQQ61+Irue1k4w44vPd5E2jjGBS4dontdXr5S4le2 lDLfmCoGrUXhBkZTALskOQKBgDRr2jNye1RfPFYUebJxI0JB9/hfyqGWLLQCn36nECmhOkUreFzu 7nhc8j+GaYD3DCjfpaB6+HNY3VovMOrqy1EqLMAQGqnvtzKYStWABbwpmPBOyEl5Yvm1Bw9Egywi gna7fMPyaGXBSBVqHUo8ugSkU5Bg8ltgnTTkgDaGYV4BAoGBAKKAaI7hajJKYkWgbW5L744f2XvX coi5CAEdqQ+Bfah/THt+s57tfAOAiQWutnmv7vzLlWjiHip+MrJYnQ+Whb5VzeDS1qNYbcZfgNNl 6OOkPcq7v0NVczeaoGWtKFdL4ZCcwciw08YolSthBUvY8ZAZoLoyE3YoBFaa7VKil1iO -----END RSA PRIVATE KEY-----

Как лучше всего отформатировать строку и записать ее в файл .pem?

Или, если это глупый вопрос, где лучше всего хранить файл закрытого ключа для автоматизации?

Альтернативный способ сделать это для тестирования - сохранить закрытый ключ как часть репозитория, а затем извлечь его во время сборки. Этот метод работает хорошо, но я боюсь, что это не «лучшая практика».

1
задан 11 June 2019 в 16:53

1 ответ

Не совсем уверен, что это считается ответом, но у меня получилось. Я использовал задачу «Установить ключ SSH» в DevOps Azure для хранения открытых и закрытых ключей. Вы можете вставить ключи в виде строк в эту задачу, и она установит ключи и сделает их доступными для использования с другими серверами.

Дополнительная информация о SSH Key Task

.
0
ответ дан 11 June 2019 в 16:53

Другие вопросы по тегам:

Похожие вопросы: