AWSのEC2からsshでgit clone を行う方法を紹介します。
またこの手でググると多くの場面で github の本体に対してsshの設定を行うことを多く見受けられますが今回はRepositoryに対して適用をするようにします。
コンテンツ
前提条件
・既にRepositoryが存在している
・既にEC2のインスタンスを立てている
EC2の設定
秘密鍵・公開鍵の作成
EC2インスタンスにログインしておきます。
既に.sshディレクトリと権限設定を済ませている前提条件で進めます。
[sample-user@sample-web01 .ssh]$ pwd
/home/sample-user/.ssh
今回は github との連携になるので、鍵の名前を id_rsa_github_ec2 とします。
[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 ファイルを作成する必要があります。
[sample-user@sample-web01 .ssh]$ vi config
Host github
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_github_ec2
config ファイルの権限設定
config ファイルが作成できたら権限も変更しておきます。
[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 接続ができる確認を行います。
[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 を行なってソースコードを持ってきます。
[sample-user@sample-web01 .ssh]$ git clone git@github.com:<ユーザー名>/<リポジトリー名>.git
何も問題がなければ clone されます。
確認
github 側では以下のようになっていますが、git clone が無事成功すると鍵マークが緑色に変わり、またNever used (一度も未使用)が更新されて利用された日時が表示されるようになります。

以上。
最後に
いかがでしたでしょうか。
以上が、「AWSのEC2からsshでgit cloneを行う方法」の紹介記事になります。




コメントを残す