初めてEC2のインスタンスを立ててVScodeでSSH接続してみたけどエラーに襲われた話

# はじめに

- エンジニア歴半年とちょっとの備忘録
- AWSのEC2を使いたかった

# やっていく

### EC2を選択
![%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2023-10-04_18.08.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3504047/d0649f1e-8226-3680-e533-0d22fd8e32f4.png)

### インスタンスを起動を選択

![%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2023-10-04_18.07.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3504047/0d0ffb29-1da6-a86a-7c53-610ff4fa0ebf.png)


### OSイメージはUbuntu Server 22.04を選択

![%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2023-10-04_18.14.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3504047/98724679-a81d-1833-65f3-48b7cc37f42a.png)

### インスタンスタイプは無料利用枠のt2.microを選択

無料枠でメモリ1GBは嬉しい

![%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2023-10-04_18.21.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3504047/ccd24869-6cd4-ce70-9af2-7465d5ace05c.png)


### 新しいキーペアの作成から、名前を適当に入れて秘密鍵を生成

![%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2023-10-04_18.22.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3504047/44340b13-e8a4-8e2c-7602-31a206ec5995.png)


特にこだわりがなければデフォルトで大丈夫です

![%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2023-10-04_18.23.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3504047/a734bc53-5437-e524-0763-015ff9286b6d.png)


### セキュリティーグループを作成、セキュリティの関係上特定のIPから接続できるようにするのがベストですが、今回はそこまで重要じゃないのでデフォルトでおk

![%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2023-10-04_18.28.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3504047/2646bb69-ef13-5aec-69e1-4d29f09a8fd7.png)


### ストレージを設定

SSDで30GBまで無料らしいのでマックスで設定

![%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2023-10-04_18.29.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3504047/cfc7b0cc-0e9c-b6ed-2d5e-a7a4423d08e1.png)


### インスタンスを起動

![%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2023-10-04_18.32.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3504047/d31bd78d-a581-3045-2160-f7dd53fc7f94.png)

# VScodeでのSSH接続

VScode拡張のRemote - SSHが必要になります。

ダウンロードしてインストールしましょう

![%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2023-10-04_18.35.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3504047/6bef6185-0895-13f2-8534-75bea04267e8.png)


新しいリモート → SSHの接続コマンドを入力します

![%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2023-10-04_21.36.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3504047/142825ac-b918-1f45-ea24-0fb165a1559b.png)


![%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2023-10-04_21.36.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3504047/28f0540d-10b0-70b3-2ad4-e701f708fbd2.png)


ここから少し苦戦しました。

どうやら私の環境からだどパブリックIPにアクセスできないらしく、（仕様が少し変わってる？）

```
ssh -i key.pem ec2-user@IPアドレス
```

みたいな基本的なSSHコマンドで何回も弾かれました。

これ、どうやらインスタンスに割り当てられているパブリックDNSにする必要があるらしく、インスタンスの詳細画面の「接続」から接続方法普通にみる事できるらしい（知らんかった）

解説なんて見る必要なし、さすがAWSって感じ。

![%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2023-10-04_21.39.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3504047/218521c3-fd5f-6448-bc1e-f753843d30c7.png)


![%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88_2023-10-04_21.39.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3504047/6a0e1179-2986-ba44-4ebe-82d675aca1b7.png)


これにて設定は完了、お疲れ様でした！！

# 備忘録

VScodeの「SSH接続コマンドから入力する」からconfigを自動入力すると、ディレクトリがそのまんま入力されます。もしそこで、`Permission denied (publickey)`などのエラーが出ている場合はディレクトリの入力を見直してみる。

実際にエラーが出てたconfigファイル

```
Host myapp
	HostName ここはDNS
	Port 21000
	User deployer
	IdentityFile id_rsa
```

ファイルのディレクトリをしっかり指定してあげることでエラーが出なくなった。

```
Host myapp
    HostName ここはDNS
    Port 21000
    User deployer
    IdentityFile ~/.ssh/id_rsa
```

# 参考

https://blog.serverworks.co.jp/tech/2020/02/20/vscode-remote-ssh/

https://zenn.dev/nakam_aws/articles/1ccd870200ff59