#AWS Cloud9でSSHキーを作成
AWS Cloud9からCodeCommitに接続する際にSSH接続を利用して通信を行うので、AWS Cloud9にてSSHキーの作成を行ってください。
下記のコマンドでSSHキーの秘密鍵「id_rsa」と公開鍵「id_rsa.pub」が作成されます。
「ssh-keygen」コマンドを実行した際に何回か入力を求められますが、何も入力せず全て「Enter」ボタンを押してください。
$ cd ~/.ssh
$ ls -ltr
total 4
-rw------- 1 ec2-user ec2-user 991 Jun 24 23:50 authorized_keys
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ec2-user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ec2-user/.ssh/id_rsa.
Your public key has been saved in /home/ec2-user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:2qnJB9l9UxTk3G89FdzBJvkVEdltyUlyDFlFDk+vtms ec2-user@ip-172-31-18-137
The key's randomart image is:
+---[RSA 2048]----+
| +#%^|
| *+/O|
| .*.B|
| .o+|
| oS. .o.+|
| oo... o. o.|
| ..o . .. |
| . o. E. |
| +. .. |
+----[SHA256]-----+
$ ls -ltr
total 12
-rw------- 1 ec2-user ec2-user 991 Jun 24 23:50 authorized_keys
-rw-r--r-- 1 ec2-user ec2-user 407 Jun 30 05:00 id_rsa.pub
-rw------- 1 ec2-user ec2-user 1679 Jun 30 05:00 id_rsa
#IAMにて作成したSSHキーを登録
AWS Cloud9にて作成したSSHキーの公開鍵「id_rsa.pub」をIAMに登録します。
下記のコマンドで公開鍵「id_rsa.pub」を表示しメモしておいてください。後の設定で必要になります。
$ cat ~/.ssh/id_rsa.pub
AWSにてIAMサービスを検索してください。
IAMはAWSのアカウントを管理するための仕組みで、SSHキーの登録などもこのサービスを利用して実施します。
IAMの画面左から「ユーザー」を選択してください。
画面右にユーザー名の一覧が表示されるので、自分のユーザー名のリンクをクリックしてください。
「ユーザー名」は後の設定で必要になるのでメモしておいてください。
ユーザーの管理画面が表示されたら「認証情報」のタブを選択してください。
「認証情報」のタブを下にスクロールして行くと「SSH 公開キーのアップロード」というボタンがあるのでクリックしてください。
SSH 公開キー貼り付けるためのウィンドウが表示されるので、公開鍵「id_rsa.pub」のコピーを貼り付け「SSH 公開キーのアップロード」ボタンをクリックしてください。
正常にSSH公開キーの登録が完了すると「SSH キーID」が表示されるのでメモしておきましょう。
後の設定で必要になります。
#CodeCommitにSSH接続するための設定
CodeCommitにSSH接続するために下記のコマンドで設定を行います。
[User]の項目には先ほどメモした「SSH キーID」を貼り付けてください。
[IdentityFile]には秘密鍵「id_rsa」を登録します。
最後にconfigファイルのパーミッションを設定します。このパーミッションの設定を行わないとSSH接続を実施した際に、認証が失敗するので注意してください。
$ vi ~/.ssh/config
Host git-codecommit.*.amazonaws.com
User APK*********HA
IdentityFile ~/.ssh/id_rsa
$ chmod 600 ~/.ssh/config
#gitの設定
CodeCommitはgitを利用しているので、gitを利用するための初期設定を行います。
[USER_NAME]にはIAMで登録されている「ユーザー名」を指定してください。
[USER_EMAIL]には「メールアドレス」を指定してください。
$ git config --global user.name [USER_NAME]
$ git config --global user.email [USER_EMAIL]
$ git config -l
#CodeCommitにリモートリポジトリを作成
CodeCommitにてリモートリポジトリを作成します。AWS Cloud9のコンソールから下記のコマンドを実行するとリモートリポジトリを作成することができます。今回は「MyDemoRepo」というリポジトリを作成しています。
リモートリポジトリの作成が正常に行われると、作成されたリモートリポジトリへの接続情報が表示されますのでメモしておきましょう。
aws codecommit create-repository --repository-name MyDemoRepo
#CodeCommitのリモートリポジトリをローカルにコピー
リモートリポジトリを利用するために、AWS Cloud9のコンソールから下記のコマンドを実行します。
最初にCodeCommitにSSH接続する際は、(yes/no)が聞かれますので「yes」を入力しましょう。
コマンドが正常に実行されるとCodeCommitからディレクトリがダウンロードされてリポジトリを利用できるようになります。
$ git clone ssh://git-codecommit.ap-southeast-1.amazonaws.com/v1/repos/MyDemoRepo
$ ls -ltr
以上