AWS Cloud9+Docker ComposeでLaravel環境を構築その肆

前回、LaravelだけGit管理するようにした。
[AWS Cloud9+Docker ComposeでLaravel環境を構築その参](https://qiita.com/_bobtabo_/items/b3dba3a8d47a66808564)
ただ、プッシュする度にユーザー名とパスワードを入力するのが面倒くさいので、SSH接続にする。

# マシンスペック
* Mac mini 2018
* macOS Catalina（10.15.x）
* Intel Core-i7 3.2GHz 6コア
* メモリ 32GB
* SSD 512GB

# Docker環境
* Nginx 最新版
* PHP（PHP-FPM）7.2.x
* MySQL 5.7.x
* Composer 1.x
* Laravel 5.6.x

# やること
* リポジトリにSSH接続する

# 前提
[AWS Cloud9+Docker ComposeでLaravel環境を構築その参](https://qiita.com/_bobtabo_/items/b3dba3a8d47a66808564)で環境構築済み

# GitリポジトリにSSH接続する

##### SSHキーペア作成

```
$ cd ~/.ssh
$ ssh-keygen -t rsa -b 4096 -C "GitHubメールアドレス"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ec2-user/.ssh/id_rsa): <ENTERキー押す>
Enter passphrase (empty for no passphrase): <好きなパスワードを入力>
Enter same passphrase again: <パスワード再入力>
・・・
+----[SHA256]-----+

$ ls
authorized_keys  id_rsa  id_rsa.pub

$ cat id_rsa.pub
ssh-rsa ・・・
```

上記の ```ssh-rsa ・・・``` をコピーしておく。

##### GitHubにSSH公開キー登録

![スクリーンショット 2021-04-22 3.07.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/7b2ea66e-3622-227e-acfe-ab6b1d8749ad.png)

![スクリーンショット 2021-04-22 3.08.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/779708f5-dce3-0049-c4ff-7e9dbd9a08cc.png)

上記でコピーした ssh-rsa 〜 を Key にペーストする。
![スクリーンショット 2021-04-22 3.25.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/fd88e76b-c0fc-25b1-761a-6784291a79be.png)

![スクリーンショット 2021-04-22 3.40.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/5d425326-810e-176d-2bdf-1522874be95d.png)

GitHubとの接続を確認する。

```
$ ssh git@github.com
・・・
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,52.69.186.44' (RSA) to the list of known hosts.
Enter passphrase for key '/home/ec2-user/.ssh/id_rsa': <SSHキーペア作成で設定したパスワード>
PTY allocation request failed on channel 0
Hi bobtabo! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
```

SSHエージェントに鍵を登録する。

```
$ ssh-agent bash
$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/ec2-user/.ssh/id_rsa: <SSHキーペア作成で設定したパスワード>
Identity added: /home/ec2-user/.ssh/id_rsa (/home/ec2-user/.ssh/id_rsa)
```

##### HTTPSでクローンしたLaravelを削除

```
$ cd ~/environment/docker/src
$ rm -fdR laravel
```

##### SSHでクローンし直す

![スクリーンショット 2021-04-22 3.45.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/5dc86aa6-6d3a-5d38-3f7b-62360533368f.png)

```
$ git clone <上記でコピーしたリポジトリURL> laravel
例）git clone git@github.com:bobtabo/cloud9-laravel.git laravel
```

クローンし直したので、下記を参考にLaravel環境を準備し直す。
[【コピペ】AWS Cloud9+Docker ComposeでLaravel環境を構築その壱#Laravel環境の準備](https://qiita.com/_bobtabo_/items/843d4a5f022b4e28780e#laravel%E7%92%B0%E5%A2%83%E3%81%AE%E6%BA%96%E5%82%99)

##### プッシュする

適当にファイルを作成する。

![スクリーンショット 2021-04-27 19.44.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/79dd67f6-c845-17fa-f2c9-c655a2e4699a.png)

ステージに追加。

![スクリーンショット 2021-04-27 19.48.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/633aa157-b90d-359e-4967-09eea5b911ad.png)

ローカルリポジトリにコミット。

![スクリーンショット 2021-04-27 19.51.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/dcb5e4d5-15b0-81e4-ad94-dd673802e626.png)

リモートリポジトリへプッシュ。

![スクリーンショット 2021-04-22 2.40.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/7615afff-eb9c-3dc3-e9a7-ef06dc8659fb.png)

何故かエラーになる。（ちなみに、プルもエラー）
![スクリーンショット 2021-04-24 2.53.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/00d818cd-fd6a-7088-87bd-e3dc9aea3ba3.png)

```console:Log
> git push origin master:master
Warning: Permanently added the RSA host key for IP address 'xx.xx.xx.xx' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
```

でも、コマンドでプッシュ出来た。

```
$ pwd
/home/ec2-user/environment/docker/src
$ cd laravel
$ git push origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Compressing objects: 100% (1/1), done.
Writing objects: 100% (2/2), 301 bytes | 301.00 KiB/s, done.
Total 2 (delta 1), reused 1 (delta 1)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:bobtabo/cloud9-laravel.git
   c6255c3..c188ca5  master -> master
```

![スクリーンショット 2021-04-27 20.13.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/3461da3d-59c8-ce7d-9436-a1cd500fe98d.png)

Cloud9でSSH接続した際は、プル／プッシュはコマンド操作しよう！