目次
はじめに
環境:Mac(macOS 14.7.2)
IAMユーザーを新規作成し、SSH公開キーをアップロードするときにエラーが発生しました。
エラー発生の流れと解決策について記載します。
はじめにIAMユーザー作成の流れを記載するため、不要な方は飛ばしてください。
それからED25519とRSAの説明は記載しておりません。
1. IAMユーザーを作成
自分のアカウントがなかったので作成しました。
ユーザー作成できる権限が必要です。
作成の流れ
Identity and Access Management (IAM)
↓↓
サイドナビの「アクセス管理」
↓↓
ユーザー
↓↓
右上の「ユーザーの作成」ボタンをクリック
↓↓
ユーザー名を入力
↓↓
オプションやグループの選択
↓↓
内容を確認して「ユーザーの作成」をクリック
作成したアカウントを確認
2. 公開鍵と秘密鍵を作成
ターミナルを開き、以下を実行。
myname@myname1 ~ % ssh-keygen
実行結果
myname@myname1 ~ % ssh-keygen
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/myname/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/myname/.ssh/id_ed25519
Your public key has been saved in /Users/myname/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:hogefugapiyo0123456/test myname@myname1
The key's randomart image is:
+--[ED25519 256]--+
|.o+o |
|o+o |
|.o.o . |
| oo . o + |
|..o .. S . |
| +o....o |
|...oo.= + o |
| ..o+ B *.E + |
| o==+B++ oo+.. |
+----[SHA256]-----+
myname@myname1 ~ % cat /Users/myname/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaHOGEHOGETESTdE+zKsNmoz5QUCb+S1 myname@myname1
↓↓
作成されたファイルを確認
.sshディレクトリに
秘密鍵:id_ed25519
公開鍵:id_ed25519.pub
が作られる。
(「command」+「shift」+「.」で.sshディレクトリなどの隠しファイルを表示できます)
↓↓
公開鍵ファイルの中身を確認
myname@myname1 ~ % cat /Users/myname/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaHOGEHOGETESTdE+zKsNmoz5QUCb+S1 myname@myname1
「ssh-ed25519 AAAAC3NzaHOGEHOGETESTdE+zKsNmoz5QUCb+S1 myname@myname1」をAWS側のIAMユーザーのSSHキーに設定するためにコピーします。
3. AWS CodeCommitのSSH公開キーをアップロード
Identity and Access Management (IAM)
↓↓
サイドナビの「アクセス管理」
↓↓
ユーザー
↓↓
「セキュリティ認証情報」タブ
↓↓
「AWS CodeCommit の SSH 公開キー」 というエリアがあります。
↓↓
「SSH公開キーのアップロード」をクリック。
モーダルが開くので、ここに コピーしたSSH公開キーをそのまま貼り付ける。
↓↓
SSH公開キーのアップロードでエラー
「エラーが発生しました。Invalid public key uploaded」
4. 解決方法
ここの「公開鍵と秘密鍵を作成」では、ED25519という形式を使って鍵が作られていました。
ssh-keygenを実行後、「Generating public/private ed25519 key pair.」というメッセージが表示されています。
調べたところ、現状AWS CodeCommitではED25519 のキーペアが使えないようです。
そのため、RSAを指定して鍵を作成する方法に変更しました。
RSA暗号で公開鍵と秘密鍵を作成
myname@myname1 ~ % ssh-keygen -t rsa -b 2048 -f ~/.ssh
実行結果
myname@myname1 ~ % ssh-keygen -t rsa -b 2048 -f ~/.ssh
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/myname/.ssh
Your public key has been saved in /Users/myname/.ssh/rsa_key.pub
The key fingerprint is:
SHA256:epm6Vtesthogehoge000001111/testhoge myname@myname1
The key's randomart image is:
+---[RSA 2048]----+
| .o..|
| . E.oo|
| o ==+|
| +ooB|
| S. oOX|
| . o+ +=#|
| . +o ..=.==|
| o.....o+..|
| oo oo. . |
+----[SHA256]-----+
↓↓
公開鍵をコピー
myname@myname1 ~ % cat /Users/myname/.ssh/rsa_key.pub
ssh-rsa AAAAB3N〜長いため省略〜oejjsX3hogeROrUeITEST3aT1 myname@myname1
「ssh-rsa AAAAB3N〜長いため省略〜oejjsX3hogeROrUeITEST3aT1 myname@myname1」をコピー。
↓↓
前述の流れに沿って、SSH公開キーをアップロードする。
↓↓
アップロードできました。
AWS CodeCommitのSSH公開キーに「SSHキーID」が表示されるようになります。
まとめ
- CodeCommitにSSH公開キーをアップロードする際、ED25519 ではなくRSAのキーペアを使用すること。
- 「2021年内にはED25519が使用できるようになる可能性がある」と記載されたブログがありましたが、2025年6月24日時点ではそうなっていないようです。
- AWSのサービスやWindows/Macの違いなどによって、ED25519のサポートの有無が異なるようです。今後も変わる可能性があるかもしれません。
参考サイト