29
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

複数AWSアカウントのCodeCommitからgit cloneする際のssh設定についての覚書

Last updated at Posted at 2018-07-03

複数のAWSアカウントのCodeCommitからgit cloneでコードを取ってくる必要があった。
その時にssh接続設定をどのように書けば良いか困ったため、調べたことの覚書。

CodeCommitへのssh接続設定

これは公式ドキュメントにある通り。

  1. ローカルで公開鍵、秘密鍵を生成
  2. AWSのIAMユーザに生成した公開鍵を登録
  3. ~/.ssh/configに以下のように設定
~/.ssh/config
Host git-codecommit.ap-northeast-1.amazonaws.com
User ***********    #IAMユーザの認証情報ページにある、手順2で登録した公開鍵に対応するSSHキーID
IdentityFile ~/.ssh/id_rsa    #手順1で生成した秘密鍵
gitclone
git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test_app

こう書くことで、Hostで指定したAWSのリージョンのCodeCommitからgit cloneする際に上記ssh設定が利用される。
AWSアカウントが一つだけの場合はこの書き方で問題なし。

複数のAWSアカウントへのssh設定

困るのは複数のAWSアカウントのCodeCommitを利用する場合。
AWSアカウントが違うということはssh認証に使うUser(SSHキーID)も違うことになるので、上記の書き方だと一つのアカウント以外にはssh認証で弾かれてしまう(※登録する公開鍵が違えば、IdentityFileも異なる)

そんな時どうするかと言うと、下記のように書くと良いらしい。

~/.ssh/config
# 1つ目のAWSアカウントに対するssh設定
Host aws1
HostName git-codecommit.ap-northeast-1.amazonaws.com
User ***********  #IAMユーザの認証情報ページにある、手順2で登録した公開鍵に対応するSSHキーID
IdentityFile ~/.ssh/id_rsa  #手順1で生成した秘密鍵

# 2つ目のAWSアカウントに対するssh設定
Host aws2
HostName git-codecommit.ap-northeast-1.amazonaws.com
User ***********  #IAMユーザの認証情報ページにある、手順2で登録した公開鍵に対応するSSHキーID
IdentityFile ~/.ssh/id_rsa  #手順1で生成した秘密鍵
1つ目のAWSアカウントからgit_clone
# こう書く所を
# git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test_app

# このように書く
git clone ssh://aws1/v1/repos/app

つまり~/.ssh/configのssh設定に任意のHost名を付けた上で、git cloneする際にHost部分を置き換えれば良いということらしい。

終わりに

という訳で、複数AWSアカウントのCodeCommitからgit cloneする際のアカウントの使い分け方でした。
git cloneする度にHost部分を書き換えるのがちょっと面倒なので、他にもっと良い方法がないか知りたいところ。

29
20
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?