現時点でのOpenSSHのバージョン(Mac)は OpenSSH_8.1p1, LibreSSL 2.7.3 ですが、今回いつものように鍵を作成したところ、CircleCIに秘密鍵を設置して、その形式だと追加できないぜとエラーが出現しました。秘密鍵の中身を確認するとヘッダー形式が BEGIN OPENSSH PRIVATE KEY と変わったので、もろもろ調査してみました。


■旧OpenSSLのPEM形式で作成される秘密鍵

上記のように BEGIN RSA PRIVATE KEY となっていれば従来の形式ですね。


■新OpenSSLのPEM形式で作成される秘密鍵

なるほどこれは初だな。ドキュメントをググる。


■ssh-keygen OpenBSD manual page server

https://www.openssh.com/releasenotes.html

https://man.openbsd.org/ssh-keygen

ssh-keygen will by default write keys in an OpenSSH-specific format. This format is preferred as it offers better protection for keys at rest as well as allowing storage of key comments within the private key file itself. The key comment may be useful to help identify the key. The comment is initialized to “user@host” when the key is created, but can be changed using the -c option.

It is still possible for ssh-keygen to write the previously-used PEM format private keys using the -m flag. This may be used when generating new keys, and existing new-format keys may be converted using this option in conjunction with the -p (change passphrase) flag.

After a key is generated, instructions below detail where the keys should be placed to be activated.

ssh-keygenは、-mフラグを使用して、以前に使用されたPEM形式の秘密鍵を書き込むことができます。

なるほどOpenSSH 7.8で仕様が変わったようですね。 -m PEM と指定すれば従来の形式で作成できそう。


■新バージョンで旧OpenSSLのPEM形式で作成する

これでOK。ちなみに新バージョンの形式を旧PEM形式に変換する場合は以下。

上記のように旧形式に変換されました。


■まとめ

間違って新バージョンで鍵を作っても旧形式に変換できるので問題なく利用できますな。しばらく鍵とか作らなかったのでこれは知らんかった。なかなかハマった。


カテゴリー: CircleCISSH

adachin

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください