目次
はじめに
複数の案件でAWSのCodeCommitを使うことになりました。
SSH接続 および viエディタの記述方法について記載します。
前提
- AWSのコンソール画面にログインできている
- ターミナルの操作が行える
- Macである
CodeCommitでの作業
SSH公開キーのアップロード
こちらの記事【AWS / CodeCommit】SSH公開キーのアップロードのエラー「Invalid public key uploaded」解決方法 for Mac に記載していますが、AWS CodeCommitのSSH公開キーが設定されました。
SSH公開キーを確認
IAM > ユーザー > ユーザー一覧から対象のアカウントを選択
「セキュリティ認証情報」タブをクリック
↓↓
少し下の方にいくと「AWS CodeCommit の SSH 公開キー」のエリアがあります。
SSHキーID に「KEYAKI46TESTHOGE」のような文字列があります。
(下記画像のオレンジの部分)
各プロジェクトのSSHキーIDをコピーし、メモに貼り付けるなどしておきます。
SSHのクローン
デベロッパー用ツール > CodeCommit > リポジトリ > 対象のリポジトリ > URLのクローン
「SSHのクローン」をクリックするとコピーできます
例:ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test-hoge
⚠️ 今回のように、複数のAWSアカウント利用のためのSSHパス設定をしている場合、このままcloneしてもエラーが出ます。
test@hoge リポジトリ % git clone ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test-git
Cloning into 'test-git'...
test@hoge@git-codecommit.ap-northeast-1.amazonaws.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
↓↓
ここでconfigの設定を行っていきます。
configの設定
configの設定内容
まず、複数記述したい場合は、以下のようにします。
# 案件A
Host pj-keyaki
HostName git-codecommit.ap-northeast-1.amazonaws.com
User VKSODVNFVFUのようなSSHキーIDを入力してください
IdentityFile ~/.ssh/rsa_pj1
# 案件B
Host pj-hinata
HostName git-codecommit.ap-northeast-1.amazonaws.com
User VKSODVNFVFUのようなSSHキーIDを入力してください
IdentityFile ~/.ssh/rsa_pj2
解説
名称 | 説明 |
---|---|
Host | 案件名など、自分で分かりやすい名前をつけます。 |
HostName | 今回は「git-codecommit.ap-northeast-1.amazonaws.com」としました。案件によって異なるので確認してください。 |
User | WSのコンソールにログインし、SSHキーIDをコピーしてここに貼ってください。 |
IdentityFile | 公開鍵ファイルがある場所を指定します。 |
この記述をターミナルで行います。
ターミナルとviエディタの操作
以下を入力します
test@hoge ~ % vi /Users/hoge/.ssh/config
↓↓
viエディタ に切り替わります。
↓↓
次にこの画面上で i をクリックすると、一番下に INSERT と表示されます。
これで入力が可能になります。
↑ ↓ ← → やEnterキーで移動して入力します。
↓↓
入力できたら esc(エスケープボタン)をクリック します
最後に :wq と入力してください。(コロンと小文字のwq)
↓↓
元のターミナルの画面に戻ります。
↓↓
以下を入力すると、入力した内容が表示されます
test@name ~ % cat ~/.ssh/config
# 案件A
Host pj-keyaki
HostName git-codecommit.ap-northeast-1.amazonaws.com
User VKSODVNFVFUのようなSSHキーIDを入力してください
IdentityFile ~/.ssh/rsa_pj1
# 案件B
Host pj-hinata
HostName git-codecommit.ap-northeast-1.amazonaws.com
User VKSODVNFVFUのようなSSHキーIDを入力してください
IdentityFile ~/.ssh/rsa_pj2
git操作
git cloneするとき
Host名 を指定してcloneします。
git clone ssh://【指定したHostをここに入力】/v1/repos/【プロジェクトのリポジトリ名】
例)git clone ssh://pj-keyaki/v1/repos/project-test
のようになります。
⚠️ 注意
以下の方法でcloneしようとするとエラーが発生しました
test@hoge テスト % git clone ssh://SSHキー@git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/test-git
Cloning into 'test-git'...
SSHキー@git-codecommit.ap-northeast-1.amazonaws.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the
git pullするとき
git pull ssh://Host/v1/repos/リポジトリ名
※Host: configで設定した、案件名などの名前
その他の記述方法とgit cloneの方法
他のQiita記事 に記載されている以下の方法でも可能です。
config設定
# 案件A
Host git-codecommit.*.amazonaws.com
User VKSODVNFVFUのようなSSHキーIDを入力してください
IdentityFile ~/.ssh/rsa_pj1
# 案件B
Host git-codecommit.*.amazonaws.com
User VKSODVNFVFUのようなSSHキーIDを入力してください
IdentityFile ~/.ssh/rsa_pj2
案件Aをgit cloneする場合
git clone ssh://案件AのSSHキー@git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/リポジトリ名
参考サイト
- 今回紹介した方法
- 別の方法