Linux、macOS、または Unix での AWS CodeCommit リポジトリへの SSH 接続の設定手順 - AWS CodeCommit

Linux、macOS、または Unix での AWS CodeCommit リポジトリへの SSH 接続の設定手順

CodeCommit に初めて接続する前に、最初にいくつかの設定手順を完了する必要があります。コンピュータと AWS プロファイルをセットアップしたら、CodeCommit リポジトリに接続し、そのリポジトリのクローンをコンピュータに作成できます (これは、ローカルリポジトリの作成とも呼ばれます)。Git を初めて利用する場合は、 でも情報を確認できますGit の詳細情報

ステップ 1: CodeCommit の初期設定

アマゾン ウェブ サービスアカウントを設定し、IAM ユーザーを作成して、CodeCommit へのアクセスを設定するには、以下の手順に従います。

IAM ユーザーを作成および設定して CodeCommit にアクセスするには

  1. アマゾン ウェブ サービスアカウントを作成するには、http://aws.amazon.com にアクセスし、[Sign Up] (サインアップ) を選択します。

  2. IAM ユーザーを作成するか、アマゾン ウェブ サービスアカウントに関連付けられた既存のユーザーを使用します。アクセスキー ID およびシークレットアクセスキーがその IAM ユーザーに関連付けられていることを確認します。詳細については、アマゾン ウェブ サービスアカウントの IAM ユーザーの作成を参照してください。

    注記

    CodeCommit は が必要ですAWS Key Management Service 既存の IAM ユーザーを使用している場合は、CodeCommit で必要な AWS KMS アクションを明示的に拒否するユーザーにポリシーがアタッチされていないことを確認します。詳細については、「AWS KMS および暗号化」を参照してください。

  3. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  4. IAM コンソールのナビゲーションペインで、[Users] (ユーザー) を選択し、続いて、CodeCommit へアクセスするために設定する IAM ユーザーを選択します。

  5. [Permissions (アクセス許可)] タブで、[Add Permissions (アクセス許可の追加)] を選択します。

  6. [Grant permissions (アクセス許可の付与)] で、[Attach existing policies directly (既存のポリシーを直接アタッチする)] を選択します。

  7. ポリシーの一覧から、[AWSCodeCommitPowerUser] または CodeCommit アクセスの別の管理ポリシーを選択します。詳細については、「AWSCodeCommit の 管理 (定義済み) ポリシー」を参照してください。

    アタッチするポリシーを選択したら、[Next: Review] (次へ: 確認) を選択して、IAM ユーザーにアタッチするポリシーのリストを表示します。リストが正しい場合は、[Add permissions (アクセス許可の追加)] を選択します。

    CodeCommit 管理ポリシーや、その他のグループおよびユーザーを含むリポジトリへのアクセス共有の詳細については、リポジトリの共有 および の認証とアクセスコントロールAWS CodeCommit を参照してください。

注記

CodeCommit で AWS CLI コマンドを使用する場合は、AWS CLI をインストールします。詳細については、「コマンドラインリファレンス」を参照してください。

ステップ 2: Git をインストールする

CodeCommit リポジトリのファイル、コミット、およびその他の情報を使用するには、ローカルマシンに Git をインストールする必要があります。CodeCommit は Git バージョン 1.7.9 以降をサポートしています。Git バージョン 2.28 は、初期コミットのブランチ名の設定をサポートしています。最新バージョンの Git を使用することをお勧めします。

Git をインストールするには、Git のダウンロードなどのウェブサイトをお勧めします。

注記

Git は、定期的に更新されている、発展中のプラットフォームです。機能の変更により、CodeCommit での動作が影響を受ける場合があります。特定のバージョンの Git と CodeCommit で問題が発生した場合は、 の情報を確認してくださいトラブルシューティング

Step ステップ 3: Linux、macOS、または Unix で認証情報を設定する

SSH および Linux、macOS、または Unix: Git と CodeCommit 用にパブリックキーとプライベートキーをセットアップする

Git および CodeCommit 用のパブリックキーとプライベートキーをセットアップするには

  1. ローカルマシンのターミナルから ssh-keygen コマンドを実行し、手順に従って、プロフィールの .ssh ディレクトリにファイルを保存します。

    注記

    必ず、キーファイルの保存場所および使用するファイルの命名パターンをシステム管理者に確認してください。

    例:

    $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/user-name/.ssh/id_rsa): Type /home/your-user-name/.ssh/ and a file name here, for example /home/your-user-name/.ssh/codecommit_rsa Enter passphrase (empty for no passphrase): <Type a passphrase, and then press Enter> Enter same passphrase again: <Type the passphrase again, and then press Enter> Your identification has been saved in /home/user-name/.ssh/codecommit_rsa. Your public key has been saved in /home/user-name/.ssh/codecommit_rsa.pub. The key fingerprint is: 45:63:d5:99:0e:99:73:50:5e:d4:b3:2d:86:4a:2c:14 user-name@client-name The key's randomart image is: +--[ RSA 2048]----+ | E.+.o*.++| | .o .=.=o.| | . .. *. +| | ..o . +..| | So . . . | | . | | | | | | | +-----------------+

    これにより、以下が生成されます。

    • codecommit_rsa ファイル (プライベートキーファイル)

    • codecommit_rsa.pub ファイル (パブリックキーファイル )

    ヒント

    デフォルトで、ssh-keygen は 2048 ビットキーを生成します。-t および-b パラメータを使用して、キーのタイプと長さを指定することができます。RSA 形式の 4096 ビットキーが必要な場合は、次のパラメータを持つコマンドを実行することで、これを指定します。

    ssh-keygen -t rsa -b 4096

    SSH キーに必要な形式と長さの詳細については、CodeCommit での IAM の使用を参照してください。

  2. 次のコマンドを実行して、パブリックキーファイル (codecommit_rsa.pub) の値を表示します。

    cat ~/.ssh/codecommit_rsa.pub

    この値をコピーします。それは次のようになります。

    ssh-rsa EXAMPLE-AfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJB gNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb2 5zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhc NMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAw DgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDAS=EXAMPLE user-name@ip-192-0-2-137
  3. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

    注記

    CodeCommit の認証情報を [My Security Credentials] (セキュリティ認証情報) で直接表示および管理できます。詳細については、「認証情報の表示と管理」を参照してください。

  4. IAM コンソールのナビゲーションペインで [Users] (ユーザー) を選択し、ユーザーのリストから自分の IAM ユーザーを選択します。

  5. ユーザーの詳細ページで、[Security Credentials] タブを選択し、次に Upload SSH public key を選択します。

  6. SSH パブリックキーの内容をフィールドに貼り付け、[Upload SSH public key] を選択します。

  7. SSH Key ID の情報を (APKAEIBAERJR2EXAMPLE など) をコピーまたは保存します。

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

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

  8. ローカルマシンで、テキストエディタを使用して ~/.ssh ディレクトリに設定ファイルを作成し、そのファイルに次の行を追加します。ここで、User は、前の手順で作成した SSH キー ID を表します。

    Host git-codecommit.*.amazonaws.com User APKAEIBAERJR2EXAMPLE IdentityFile ~/.ssh/codecommit_rsa
    注記

    プライベートキーファイルに codecommit_rsa 以外の名前を付けた場合は、ここでその名前を必ず使用してください。

    複数のアマゾン ウェブ サービスアカウントでリポジトリへの SSH アクセスを設定できます。詳細については、 への SSH 接続のトラブルシューティングAWS CodeCommit を参照してください。

    このファイル名を config として保存します。

  9. ターミナルから、次のコマンドを実行して設定ファイルのアクセス権限を変更します。

    chmod 600 config
  10. 以下のコマンドを実行して、SSH 設定をテストします。

    ssh git-codecommit.us-east-2.amazonaws.com

    git-codecommit.us-east-2.amazonaws.com が既知の Hosts ファイルにまだ含まれていないため、接続の確認を求められます。この確認の一部として、CodeCommit サーバーのフィンガープリントが表示されます (MD5 の場合は a9:6d:03:ed:08:42:21:be:06:e1:e0:2a:d1:75:31:5e、SHA256 の場合は 3lBlW2g5xn/NA2Ck6dyeJIrQOWvn7n8UEs56fG6ZIzQ)。

    注記

    CodeCommit サーバーフィンガープリントは、各 AWS リージョン に固有です。 AWS リージョン のサーバーフィンガープリントを表示するには、CodeCommit のサーバーフィンガープリント を参照してください。

    接続の確認後、そのサーバーが既知の Hosts ファイルに追加されたことの確認と接続の成功メッセージが表示されます。成功メッセージが表示されない場合は、CodeCommit にアクセスするために設定した IAM ユーザーの ~/.ssh ディレクトリに config ファイルが保存されていること、適切なプライベートキーファイルが指定されていることを確認します。

    問題のトラブルシューティングに役立つ情報については、ssh パラメータを指定して -v コマンドを実行してください。例:

    ssh -v git-codecommit.us-east-2.amazonaws.com

    接続の問題のトラブルシューティングに役立つ情報については、 への SSH 接続のトラブルシューティングAWS CodeCommit を参照してください。

ステップ 4: CodeCommit コンソールに接続し、リポジトリのクローンを作成する

管理者から CodeCommit リポジトリの名前と接続の詳細をすでに受け取っている場合は、このステップをスキップしてリポジトリ のクローンを直接作成できます。

CodeCommit リポジトリに接続するには

  1. https://console.aws.amazon.com/codesuite/codecommit/home で CodeCommit コンソールを開きます。

  2. リージョンセレクタで、リポジトリが作成された AWS リージョン を選択します。リポジトリは、 AWS リージョン に固有のものです。詳細については、「リージョンと Git 接続エンドポイント」を参照してください。

  3. 接続するリポジトリをリストから見つけて選択します。[クローン URL] を選択してから、リポジトリのクローン作成やリポジトリへの接続時に使用するプロトコルを選択します。これにより、クローン URL が複製されます。

    • IAM ユーザー、または AWS CLI に含まれている認証情報ヘルパーで Git 認証情報を使用している場合は、HTTPS URL をコピーします。

    • ローカルコンピュータで git-remote-codecommit コマンドを使用している場合は、HTTPS (GRC) URL をコピーします。

    • IAM ユーザーで SSH パブリック/プライベートキーペアを使用している場合は、SSH URL をコピーします。

    注記

    リポジトリのリストではなく [ようこそ] ページが表示される場合、ログインしている AWS リージョン の AWS アカウントに関連付けられているリポジトリはありません。リポジトリを作成するには、「AWS CodeCommit リポジトリを作成する」を参照するか、「Git と CodeCommit の開始方法」チュートリアルのステップに従います。

  4. ターミナルを開きます。/tmp ディレクトリから、レポジトリのクローンを作成するためにコピーした SSH URL を使用して git clone コマンドを実行します。For example, to clone a repository named MyDemoRepo to a local repo named my-demo-repo in the US East (Ohio) Region:

    git clone ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
    注記

    正常に接続されたことを確認できましたが、コマンドを実行してもクローンを作成できない場合には、設定ファイルへのアクセスに必要な権限が付与されていないか、他の設定が設定ファイルと競合している可能性があります。もう一度接続をお試しください。今度は、コマンドに SSH キー ID を含めます。例:

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

    詳細については、「アクセスエラー: パブリックキーが IAM に正常にアップロードされたが、Linux、macOS、または Unix システムでは接続が失敗する。」を参照してください。

    リポジトリへの接続方法の詳細については、 を参照してくださいCodeCommit リポジトリのクローンを作成してリポジトリに接続する

次のステップ

前提条件を完了しました。CodeCommit の開始方法 のステップに従って、CodeCommit の使用を開始してください。