search
LoginSignup
19

More than 1 year has passed since last update.

posted at

updated at

EC2にgit cloneする方法

EC2にコードを展開する時、git cloneでやると簡単にDeployできます。
なんとなく手順を覚えているものの、ところどころ忘れていることもあるので、やり方をまとめておきます。

  • Amazon Linux 2でのやり方です。
  • リポジトリは、GitLabを使っています。

SSH Keyの作成

git cloneを実行するには、GitLabとSSHで通信する必要があります。
SSHキー用のディレクトリへ移動し、SSH通信で使用するキーを作成します。

$ cd ~/.ssh
$ ssh-keygen -t rsa -C "[Gitlabで登録したEmail]"

コマンドを実行すると、3つ質問されますが、Enter3回でOKです。

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/(username)/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

作成されたキーに権限を付与

コマンドが正常に完了すると、id_rsa, id_rsa.pubという2つのファイルができます。
id_rsaは、秘密キーという非常に大切なキーなので、適切な権限が付与されている必要があります。

以下のコマンドで、権限を付与します。

$ sudo chmod 600 id_rsa

GitLabへキーを登録

リポジトリと通信するためには、生成されたキー id_rsa.pub をGitLabへ登録し、有効化する必要があります。

 1. id_rsa.pubを開き、文字列をコピーします。
  (ssh-rsa...のところから全部コピーします)

$ cat id_rsa.pub
ssh-rsa AAA....1yc2EAAAADAQABAA........../j21AEwVC1i/+SBcQgTvccQd......

 2. GitlabのSSH Keysメニューをクリックし、キーを貼り付け、Add Keyをクリックします (SSH Keysは、User Settingsの中にあります)。
Bildschirmfoto_2020-05-17_um_23_07_27.png

SSH通信の確認

ここまでの設定が完了したら、EC2上でGitLabへの通信を確認します。

$ ssh -T git@gitlub.com

Welcome to GitLab, @XXXXXX!と表示されば、通信できています。

git cloneの実行

以下のコマンドを実行し、リポジトリをCloneします。

$ git clone git@gitlab.com:XXX/TTT.git

これで、GitLabのリポジトリからコードを取得できます。

もしうまく行かない時は、、、

上記の設定を行っても、git cloneがうまく行かないことがあります。
こんなエラーが出たり、、、

Cloning into 'Project Name'...
Permission denied (publickey).
fatal: Could not read from remote repository.

この場合、以下の2つの点を確認してみてください。

  1. git clone コマンドは、sudoをつけないで実行しているか?

    • sudo をつけてコマンドを実行すると、rootで実行することになるので、せっかく作成し たキーを利用できていない可能性があります。
  2. Cloneしようとしているディレクトリは、ec2-user:ec2-user になっているか?

    • ec2-userに書き込み権限がないディレクトリには、Clone できないので、そこも意外と盲点だったりします。




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
What you can do with signing up
19