ssh-keygenで生成される秘密鍵のヘッダ文字列が変わった話
ものすごく小さなトラブルでしたが、備忘録として書き残しておきます。
起きた問題
AWS OpsWorksにデプロイ用のSSH秘密鍵が登録できない。
OpsWorksに新しいAppを作成して、Application SourceとしてプライベートGitHubリポジトリに配置したコードを使おうとした。
リポジトリURLは [email protected]:<ユーザ名>/<リポジトリ名>
な形式、もちろんプライベートリポジトリなのでssh鍵を使った認証が必須です。
そこで
$ ssh-keygen -t rsa -f deploykey
などと鍵を生成し、
1. 生成された公開鍵(.pubの方)をGitHubリポジトリのデプロイ鍵として登録
2. 生成された秘密鍵(.pubじゃない方)をOpsWorksに登録
していくわけだが、手順2が通らなかった。曰く、赤文字で Please provide a valid SSH key
と。
原因と対処法
最近のSSH秘密鍵の形式が変更されたのだが、OpsWorks側がまだこれに対応していないのが原因。
-----BEGIN OPENSSH PRIVATE KEY-----
XXXXXXXXXXXXXXX.....
-----BEGIN RSA PRIVATE KEY-----
YYYYYYYYYYYYYYY.....
鍵本体の仕様は変更されていないので、秘密鍵ファイルを開いて手作業でヘッダ部分の だめでした。OPENSSH
を RSA
に置換してあげれば良い。旧形式で生成する方法は調査中ですが、一旦昔の ssh-keygen
が入っているサーバで生成した鍵を使って対策しました。
2019/03/13 追記
@kazukifujii さんのコメントを参考に過去のコマンドを実行したところ、無事に旧形式で Private Key の生成ができました。 @kazukifujii さん、ありがとうございます!
ssh-keygen -t rsa -f deploykey -m pem
これでOpsWorks側の鍵バリデーションが通るようになります。
ちなみに、GitHubのリポジトリに設定したデプロイキーと、手持ちの秘密鍵のペアが正しく動作するか検証するときに下記のコマンドを使いました。参考:git clone 時に秘密鍵を指定する
$ GIT_SSH_COMMAND="ssh -i ~/.ssh/deploykey -F /dev/null" git ls-remote [email protected]:<アカウント>/<プロジェクト> HEAD
Author And Source
この問題について(ssh-keygenで生成される秘密鍵のヘッダ文字列が変わった話), 我々は、より多くの情報をここで見つけました https://qiita.com/qpSHiNqp/items/3a36b79aeea27df0c09f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .