AWSのEC2からsshでgit clone を行う方法を紹介します。
またこの手でググると多くの場面で github の本体に対してsshの設定を行うことを多く見受けられますが今回はRepositoryに対して適用をするようにします。
コンテンツ
前提条件
・既にRepositoryが存在している
・既にEC2のインスタンスを立てている
EC2の設定
秘密鍵・公開鍵の作成
EC2インスタンスにログインしておきます。
既に.sshディレクトリと権限設定を済ませている前提条件で進めます。
1 2 |
[sample-user@sample-web01 .ssh]$ pwd /home/sample-user/.ssh |
今回は github との連携になるので、鍵の名前を id_rsa_github_ec2 とします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[sample-user@sample-web01 .ssh]$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/sample-user/.ssh/id_rsa): id_rsa_github_ec2 Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in id_rsa_github_ec2. Your public key has been saved in id_rsa_github_ec2.pub. The key fingerprint is: SHA256:GEvStcW4w+eQqK8e/U5YctCycjUZ2X9KpbKITTW9+iZ sample-user@sample-web01 The key's randomart image is: +---[RSA 2048]----+ | o+ooo...+| | . o.=oo.. o.| | . *o*o. ..+. | | o.O*... oo. | | ..* S=. E.. | | .o + o.. + | | .. o . . | | ... o | | ... .o | +----[SHA256]-----+ [sample-user@sample-web01 .ssh]$ ls authorized_keys id_rsa_github_ec2 id_rsa_github_ec2.pub known_hosts |
config ファイルの作成
.ssh ディレクトリに config ファイルを作成する必要があります。
1 2 3 4 5 |
[sample-user@sample-web01 .ssh]$ vi config Host github HostName github.com User git IdentityFile ~/.ssh/id_rsa_github_ec2 |
config ファイルの権限設定
config ファイルが作成できたら権限も変更しておきます。
1 2 3 4 5 |
[sample-user@sample-web01 .ssh]$ ls -l | grep config -rw-rw-r-- 1 dev dev 100 1月 16 11:40 config [sample-user@sample-web01 .ssh]$ chmod 600 config [sample-user@sample-web01 .ssh]$ ls -l | grep config -rw------- 1 dev dev 100 1月 16 11:40 config |
600 になっていることを確認できました。
github の設定
公開鍵を登録する
公開鍵を登録するために、Repositoryのsettings へアクセスします。
https://github.com/<ユーザー名>/<リポジトリー名>/settings/keys
以下のような見え方になっていると思います。
この時、右上の Add deploy key をクリックします。
次の画面では Title は好きに決めていただいて、Key には EC2 インスタンスで ssh-keygen -t rsa で生成された 公開鍵( id_rsa_github_ec2.pub )の中身を貼り付けます。
Allow write access に関しては EC2 側から git push する場合にチェックを入れます。
今回は git clone を目標としており、変更点を EC2 側からチェックを入れて push することもないのでチェックは入れないまま進めます。
無事登録できた場合、デフォルト設定だと github の登録済みのメールアドレスに通知が飛んできます。
github 接続確認
接続確認コマンドを利用して github へ ssh 接続ができる確認を行います。
1 2 |
[sample-user@sample-web01 .ssh]$ ssh -T git@github.com Hi <ユーザー名>/<リポジトリー名>! You’ve successfully authenticated, but GitHub does not provide shell access. |
成功しました。
git clone を行う
git clone を行なってソースコードを持ってきます。
1 |
[sample-user@sample-web01 .ssh]$ git clone git@github.com:<ユーザー名>/<リポジトリー名>.git |
何も問題がなければ clone されます。
確認
github 側では以下のようになっていますが、git clone が無事成功すると鍵マークが緑色に変わり、またNever used (一度も未使用)が更新されて利用された日時が表示されるようになります。
以上。
最後に
いかがでしたでしょうか。
以上が、「AWSのEC2からsshでgit cloneを行う方法」の紹介記事になります。
コメントを残す