AWS CodeCommit への SSH 接続のトラブルシューティング - AWS CodeCommit

AWS CodeCommit への SSH 接続のトラブルシューティング

以下の情報は、SSH を使用して CodeCommit リポジトリに接続する際に発生する一般的な問題のトラブルシューティングに役立つ場合があります。

アクセスエラー: パブリックキーは IAM に正常にアップロードされましたが、Linux, macOS, or Unix システムでの接続が失敗します。

問題: 接続をテストする場合、またはリポジトリのクローンを作成する場合に CodeCommit リポジトリ と通信するために SSH エンドポイントに接続しようとすると、接続に失敗するか、拒否されます。

解決方法: IAM のパブリックキーに割り当てられた SSH キー ID が接続試行時に関連付けられていない可能性があります。設定ファイルが構成されていない、設定ファイルへのアクセス許可が付与されていない、別の設定が原因で設定ファイルが読み取れない、キー ID ではなく IAM ユーザーの ID を入力している、のいずれかが考えられます。

SSH キー ID は、IAM ユーザーのプロフィールの IAM コンソールで確認できます。


                IAM コンソールの SSH キー ID
注記

複数の SSH キー ID をアップロードしている場合、キーは、アップロードの日付ではなく、キー ID のアルファベット順にリストされます。正しいアップロードの日付に関連付けられたキー ID をコピーしていることを確認します。

次のコマンドを使用して、接続をお試しください。

ssh Your-SSH-Key-ID@git-codecommit.us-east-2.amazonaws.com

接続確認後に成功メッセージが表示される場合、お使いの SSH キー ID は有効です。設定ファイルを編集し、接続試行を IAM のパブリックキーと関連付けます。設定ファイルを編集しない場合は、すべてのリポジトリへの接続試行の前で SSH キー ID を使用することができます。たとえば、接続試行を関連付けるための設定ファイルを変更せずに、リポジトリ (MyDemoRepo) のクローンを作成する場合は、次のコマンドを実行します。

git clone ssh://Your-SSH-Key-ID@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo

詳細については、「Linux, macOS, or Unix 上で SSH 接続する場合」を参照してください。

アクセスエラー: パブリックキーは正常に IAM および SSH にアップロードされたが、Windows システム上で接続できない。

問題: SSH エンドポイントを使用して、クローンを作成するか、CodeCommit リポジトリ と接続しようとすると、エラーメッセージ No supported authentication methods available が表示されます。

解決方法: このエラーの最も一般的な原因は、SSH 使用時に Windows に別のプログラムを使用すると指示する Windows システムの環境変数セットが含まれることです。たとえば、ツール (plink.exe) の PuTTY セットのいずれかにポイントするように GIT_SSH 変数を設定しているとします。これはレガシーな設定であるか、コンピュータにインストールされている他のプログラムに必須である可能性があります。この環境変数が必須ではないことがわかっている場合は、システムプロパティを開き、この環境変数を削除できます。

この問題を対処するには、Bash エミュレーターを開いて 再度 SSH 接続を試みますが、プリフィックスとして GIT_SSH_COMMAND="SSH" を含みます。たとえば、SSH を使用してリポジトリのクローンを作成するには次のように行います。

GIT_SSH_COMMAND="ssh" git clone ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo

お使いの Windows バージョンによって、Windows コマンドラインで SSH から接続しているときに接続文字列の一部として SSH キー ID を含める必要がある場合にも、同様のエラーが発生する場合があります。再度接続をお試しください。今回は、コマンドの一部として、IAM からコピーした SSH キー ID を含めます。例:

git clone ssh://Your-SSH-Key-ID@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo

認証チャレンジ: CodeCommit リポジトリへの接続時にホストの信頼性が確立できない

問題: SSH エンドポイントを使用して CodeCommit リポジトリ と通信しようとすると、警告メッセージ The authenticity of host 'host-name' can't be established. が表示されます。

解決方法: 認証情報が正しく設定されていない可能性があります。「Linux, macOS, or Unix 上で SSH 接続する場合」または「Windows での SSH 接続の場合」の手順に従います。

このステップ通りに行っても問題が解決しない場合は、中間者 (MITM) 攻撃を受けている可能性があります。次のメッセージが表示されたら、no と入力し、[Enter] キーを押します。

Are you sure you want to continue connecting (yes/no)?

接続を継続する前に、CodeCommit 接続に必要なフィンガープリントやパブリックキーが、SSH セットアップのトピックのものと一致していることを確認します。

CodeCommit のパブリックフィンガープリント
サーバー 暗号ハッシュタイプ フィンガープリント
git-codecommit.us-east-2.amazonaws.com MD5 a9:6d:03:ed:08:42:21:be:06:e1:e0:2a:d1:75:31:5e
git-codecommit.us-east-2.amazonaws.com SHA256 3lBlW2g5xn/NA2Ck6dyeJIrQOWvn7n8UEs56fG6ZIzQ
git-codecommit.us-east-1.amazonaws.com MD5 a6:9c:7d:bc:35:f5:d4:5f:8b:ba:6f:c8:bc:d4:83:84
git-codecommit.us-east-1.amazonaws.com SHA256 eLMY1j0DKA4uvDZcl/KgtIayZANwX6t8+8isPtotBoY
git-codecommit.us-west-2.amazonaws.com MD5 a8:68:53:e3:99:ac:6e:d7:04:7e:f7:92:95:77:a9:77
git-codecommit.us-west-2.amazonaws.com SHA256 0pJx9SQpkbPUAHwy58UVIq0IHcyo1fwCpOOuVgcAWPo
git-codecommit.eu-west-1.amazonaws.com MD5 93:42:36:ea:22:1f:f1:0f:20:02:4a:79:ff:ea:12:1d
git-codecommit.eu-west-1.amazonaws.com SHA256 tKjRkOL8dmJyTmSbeSdN1S8F/f0iql3RlvqgTOP1UyQ
git-codecommit.ap-northeast-1.amazonaws.com MD5 8e:a3:f0:80:98:48:1c:5c:6f:59:db:a7:8f:6e:c6:cb
git-codecommit.ap-northeast-1.amazonaws.com SHA256 Xk/WeYD/K/bnBybzhiuu4dWpBJtXPf7E30jHU7se4Ow
git-codecommit.ap-southeast-1.amazonaws.com MD5 65:e5:27:c3:09:68:0d:8e:b7:6d:94:25:80:3e:93:cf
git-codecommit.ap-southeast-1.amazonaws.com SHA256 ZIsVa7OVzxrTIf+Rk4UbhPv6Es22mSB3uTBojfPXIno
git-codecommit.ap-southeast-2.amazonaws.com MD5 7b:d2:c1:24:e6:91:a5:7b:fa:c1:0c:35:95:87:da:a0
git-codecommit.ap-southeast-2.amazonaws.com SHA256 nYp+gHas80HY3DqbP4yanCDFhqDVjseefVbHEXqH2Ec
git-codecommit.eu-central-1.amazonaws.com MD5 74:5a:e8:02:fc:b2:9c:06:10:b4:78:84:65:94:22:2d
git-codecommit.eu-central-1.amazonaws.com SHA256 MwGrkiEki8QkkBtlAgXbYt0hoZYBnZF62VY5RzGJEUY
git-codecommit.ap-northeast-2.amazonaws.com MD5 9f:68:48:9b:5f:fc:96:69:39:45:58:87:95:b3:69:ed
git-codecommit.ap-northeast-2.amazonaws.com SHA256 eegAPQrWY9YsYo9ZHIKOmxetfXBHzAZd8Eya53Qcwko
git-codecommit.sa-east-1.amazonaws.com MD5 74:99:9d:ff:2b:ef:63:c6:4b:b4:6a:7f:62:c5:4b:51
git-codecommit.sa-east-1.amazonaws.com SHA256 kW+VKB0jpRaG/ZbXkgbtMQbKgEDK7JnISV3SVoyCmzU
git-codecommit.us-west-1.amazonaws.com MD5 3b:76:18:83:13:2c:f8:eb:e9:a3:d0:51:10:32:e7:d1
git-codecommit.us-west-1.amazonaws.com SHA256 gzauWTWXDK2u5KuMMi5vbKTmfyerdIwgSbzYBODLpzg
git-codecommit.eu-west-2.amazonaws.com MD5 a5:65:a6:b1:84:02:b1:95:43:f9:0e:de:dd:ed:61:d3
git-codecommit.eu-west-2.amazonaws.com SHA256 r0Rwz5k/IHp/QyrRnfiM9j02D5UEqMbtFNTuDG2hNbs
git-codecommit.ap-south-1.amazonaws.com MD5 da:41:1e:07:3b:9e:76:a0:c5:1e:64:88:03:69:86:21
git-codecommit.ap-south-1.amazonaws.com SHA256 hUKwnTj7+Xpx4Kddb6p45j4RazIJ4IhAMD8k29itOfE
git-codecommit.ca-central-1.amazonaws.com MD5 9f:7c:a2:2f:8c:b5:74:fd:ab:b7:e1:fd:af:46:ed:23
git-codecommit.ca-central-1.amazonaws.com SHA256 Qz5puafQdANVprLlj6r0Qyh4lCNsF6ob61dGcPtFS7w
git-codecommit.eu-west-3.amazonaws.com MD5 1b:7f:97:dd:d7:76:8a:32:2c:bd:2c:7b:33:74:6a:76
git-codecommit.eu-west-3.amazonaws.com SHA256 uw7c2FL564jVoFgtc+ikzILnKBsZz7t9+CFdSJjKbLI
git-codecommit.us-gov-west-1.amazonaws.com MD5 9f:6c:19:3b:88:cd:e8:88:1b:9c:98:6a:95:31:8a:69
git-codecommit.us-gov-west-1.amazonaws.com SHA256 djXQoSIFcg8vHe0KVH1xW/gOF9X37tWTqu4Hkng75x4
git-codecommit.us-gov-east-1.amazonaws.com MD5 00:8d:b5:55:6f:05:78:05:ed:ea:cb:3f:e6:f0:62:f2
git-codecommit.us-gov-east-1.amazonaws.com SHA256 fVb+R0z7qW7minenW+rUpAABRCRBTCzmETAJEQrg98
git-codecommit.eu-north-1.amazonaws.com MD5 8e:53:d8:59:35:88:82:fd:73:4b:60:8a:50:70:38:f4
git-codecommit.eu-north-1.amazonaws.com SHA256 b6KSK7xKq+V8jl7iuAcjqXsG7zkqoUZZmmhYYFBq1wQ
git-codecommit.me-south-1.amazonaws.com MD5 0e:39:28:56:d5:41:e6:8d:fa:81:45:37:fb:f3:cd:f7
git-codecommit.me-south-1.amazonaws.com SHA256 O+NToCGgjrHekiBuOl0ad7ROGEsz+DBLXOd/c9wc0JU
git-codecommit.ap-east-1.amazonaws.com MD5 a8:00:3d:24:52:9d:61:0e:f6:e3:88:c8:96:01:1c:fe
git-codecommit.ap-east-1.amazonaws.com SHA256 LafadYwUYW8hONoTRpojbjNs9IRnbEwHtezD3aAIBX0
git-codecommit.cn-north-1.amazonaws.com.cn MD5 11:7e:2d:74:9e:3b:94:a2:69:14:75:6f:5e:22:3b:b3
git-codecommit.cn-north-1.amazonaws.com.cn SHA256 IYUXxH2OpTDsyYMLIp+JY8CTLS4UX+ZC5JVZXPRaxc8
git-codecommit.cn-northwest-1.amazonaws.com.cn MD5 2e:a7:fb:4c:33:ac:6c:f9:aa:f2:bc:fb:0a:7b:1e:b6
git-codecommit.cn-northwest-1.amazonaws.com.cn SHA256 wqjd6eHd0+mOBx+dCNuL0omUoCNjaDtZiEpWj5TmCfQ

IAM エラー: 「無効な形式」 (IAM へのパブリックキーの追加時)

問題: IAM において、CodeCommit で SSH を使用するようにセットアップを試みると、パブリックキー追加時にエラーメッセージ Invalid format が表示される。

解決方法: IAM で使用できるのは、OpenSSH 形式のパブリックキーのみです。別の形式でパブリックキーを指定した場合やキーが必要なビット数ではない場合にこのエラーが表示されます。

  • SSH パブリックキーをコピーすると、オペレーティングシステムによって改行が挿入される場合があります。IAM に追加するパブリックキーに改行がないことを確認してください。

  • 一部の Windows オペレーティングシステムでは、OpenSSH 形式を使用しません。キーペアを生成して、IAM に必要な OpenSSH 形式をコピーする方法については、「SSH と Windows: Git と CodeCommit 用のパブリックキーとプライベートキーの設定」を参照してください。

IAM における SSH キーの要件の詳細については、IAM ユーザーガイドの「CodeCommit で SSH キーを使用する」を参照してください。

Windows 上の Git: SSH を使用して接続を試みると、Bash エミュレーターまたはコマンドラインはフリーズします。

問題: Windows に SSH アクセスを設定し、コマンドラインまたはターミナルで、接続できることを確認後、コマンドプロンプトまたは Bash エミュレーターで、サーバーのホストキーがレジストリにキャッシュされていないことを示すメッセージが表示され、git pullgit push、または git clone などのコマンドを使用しようとすると、キーをキャッシュに保存するための入力画面がフリーズします (y/n/ の戻り値入力が受け付けられない)。

解決方法: このエラーの最も一般的な原因は、お使いの Git 環境が OpenSSH 以外 (おそらく PuTTY) を使用して認証するように設定されていることです。設定によっては、キーのキャッシングに関する問題が発生することで知られています。この問題を解決するには、以下のいずれかをお試しください。

  • Bash エミュレーターを開き、GIT_SSH_COMMAND="ssh" パラメータを追加してから、Git コマンドを使用します。たとえば、リポジトリにプッシュする場合は、git push ではなく、次のように入力します。

    GIT_SSH_COMMAND="ssh" git push
  • PuTTY をインストール済みの場合は、PuTTY を開き、[Host Name (ホスト名) (または IP アドレス)] に、到達する CodeCommit エンドポイント (例: git-codecommit.us-east-2.amazonaws.com) を入力します。[Open] を選択します。PuTTY セキュリティ警告によりプロンプトが表示されたら、[はい] を選択して、完全にキーをキャッシュします。

  • 今後使用しない GIT_SSH 環境変数の名前を変更するか、削除します。次に、新しいコマンドプロンプト、または Bash エミュレーターセッションを開き、コマンドを再度実行してみてください。

その他のソリューションについては、スタックのオーバーフローの「キャッシュの保存キーでの Git のクローン/プルのフリーズ」を参照してください。