仕事でAWSのCodeCommitを扱っております。 CodeCommitはAWS版GitHubのような位置づけで、Gitを使ったソースコード管理ができます。
SSHの鍵認証を使って接続管理をしているのですが、とあるメンバーの鍵だけが、IAMのSSH公開キーのアップロードで正常にアップロードできませんでした。 原因を調査したので共有します。
ED25519方式の鍵について
私が以前から使っている鍵はRSA方式なのですが、IAMでアップロードエラーが発生したメンバーの鍵は、ED25519方式でした。
僭越ながらED25519方式は初見だったため、いろいろと調べてみました。 調べた限り、とても強固な鍵であることが分かります。
SSH 用の鍵を作成する際、従来は RSA を利用するケースがとても多かったと思います。 ですが、ED25519 の方が RSA よりも強度が高く、しかも速いです。 ED25519 に対応していない古い SSH の実装が無い限り、今後は ED25519 を利用した方が良さそうです。
SSH は (RSA 鍵より) ED25519 鍵の方が強固で速い - らくがきちょう
また、他にもED25519を推奨する参考情報がありました。
SSHの鍵認証で最も広く使われているのはRSA暗号です。しかし、最近のSSHはRSAよりも強固でパフォーマンスも良い暗号化アルゴリズムに対応しています。2017年現在、安全面と性能面で最強なのが「Ed25519」というアルゴリズムです。
SSH認証に最強の「Ed25519鍵」を使おう | LFI
なお、ED25519のEDは、エドワーズ曲線デジタル署名アルゴリズムとなります。
参考になったサイト様
AWSはED25519方式に対応していない
強固なタイプの鍵であれば使いたいところですが、実際のところはアップロードできなかったため、理由を調べているとAWSのフォーラムにたどり着きました。
Ed25519 SSH public key support
When will AWS support adding ed25519 keys to IAM users?
~途中省略~
Thank you for bringing this request to our attention. We currently support attaching only RSA keys to IAM users. We will consider supporting Ed25519 public-key signature system in future releases.
https://forums.aws.amazon.com/thread.jspa?threadID=250753
実際にEd25519の鍵はアップロードできなかったので、現時点では素直にRSAの鍵を使うのが良さそうです。
2021年内に使えるようになる可能性あり
AWSフォーラムの最新メッセージには、今年度のロードマップにED25519の鍵ペア対応が含まれているという胸が記述されていました。
そのため、現時点では使えませんが、近い将来使えるようになる可能性が高いです。
Support for ED25519 Key Pairs to authenticate to EC2 Instances is on the product roadmap for this year. Thank you for being patient with us!
https://forums.aws.amazon.com/thread.jspa?threadID=250753
まとめ
AWSが公式に対応した場合、RSAでないタイプの鍵も普及率が上がっていくと思います。
RSA以外の鍵ペア暗号化方式についての理解を深める良いきっかけになったので、今のうちにハマって良かったです。