パイプラインにAzure DevOpsを使用しています。公開鍵と秘密鍵のコピーを持っています。公開鍵は、Terraformを使用した作成プロセスによってすでにサーバーに追加されています。
テストのために、秘密鍵を格納する変数$ keyを作成しました。変数はDevOpsパイプラインの一部であり、ビルドサーバーのbashスクリプトによって取得できます。
そのキーを使用して、リモートサーバーにSSH接続します。 $ keyをファイルに書き込んでから、それを使用しようとすると、.
ssh [email protected] -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ファイルに書き込む最良の方法は何ですか?
または、これがばかげた質問である場合、自動化のために秘密鍵ファイルを保存するのに最適な場所はどこですか
テストのためにこれを行った別の方法は、秘密鍵をリポジトリの一部として格納し、ビルド中にそれを引き下げることです。この方法はうまく機能しますが、「ベストプラクティス」ではないのではないかと心配しています。
これが答えとしてカウントされるかどうかは本当にわかりませんが、私はそれを機能させました。 Azure DevOpsの「SSHキーのインストール」タスクを使用して、公開キーと秘密キーを保存しました。キーを文字列としてこのタスクに貼り付けると、キーがインストールされ、他のサーバーで使用できるようになります。