AWS: AWS入門(EC2編2) - LinuxインスタンスにWindows端末からOpenSSHで接続してみる

###### 実施環境

 Windows 11 Home Version 21H2
 Microsoft Edge 124.0.2478.67 (64bit)
 OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
 Tera Term Version 4.106

### 0. 概要

前回、 EC2 で Linux インスタンスを起動しました。
今回は起動したインスタンスに Windows 端末から SSH コマンドと SCP コマンドで接続してみます。
また、 Tera Term でも接続してみます。

### 1. OpenSSH の確認

まずそもそもの OpenSSH のインストールですが、今回使用する Windows 11 はデフォルトで OpenSSH が入っているので、特に何もインストールはしなくて大丈夫です。
 OpenSSH が入っているかを確認するには、「スタート」⇒「すべてのアプリ」⇒「設定」から「アプリ」⇒「オプション機能」の「インストールされている機能」で確認できます。
「 OpenSSH クライアント」があれば OK です。

![WS000068.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/b8c3daaf-747f-7052-5577-1fbe2ee3ffe5.jpeg "1_01")

![WS000067.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/55759cc9-107c-f4e5-45bc-722772cda3c0.jpeg "1_02")

![WS000064.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/e33e4efe-ff12-400f-fcd7-c3e560c7142d.jpeg "1_03")

![WS000120.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/d8a002fd-ba3d-891b-4e71-aa5f432454f7.jpeg "1_04")

![WS000121.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/1e4621db-24f7-87cf-d28b-646dbfc2a854.jpeg "1_05")

### 2. 接続先ドメイン名の確認

接続先のドメイン名は、インスタンス画面の「詳細」タブ、「パブリック IPv4 DNS 」から確認できます。

![WS000065.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/e3e40525-efe0-9d68-0fa6-799c41efdd38.jpeg "2_01")

:::note info
インスタンスを一度停止してから起動しなおしたりすると、アドレスやドメイン名が変わってしまう場合があるので注意してください。
固定のアドレスを使用するには別の設定が必要となります。
:::

### 3. 鍵の権限変更

さて、ではインスタンス起動時にダウンロードした .pem ファイルを使用してさっそく接続...といきたいところですが、この段階で SSH 接続しようとすると以下のようなエラーが出てしまいます。

```DOS:ターミナル
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'E:\\work\\aws\\TEST_KEY.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "E:\\work\\aws\\TEST_KEY.pem": bad permissions
ec2-user@***: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
```

これは、 .pem ファイルの権限が広すぎるためです。
 .pem ファイルは改ざんや盗難などを防ぐため、付与する権限は最低限の権限でなくてはいけません。

そのため、最低限の権限となるように .pem ファイルの権限を修正します。
なお、こちらも最新の手順は以下ドキュメントを参照してください。
※英語のページです

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html

まずは .pem ファイルを右クリックし、「プロパティ」を選択します。

![WS000070.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/90684147-eacf-7697-bbe0-4a1ddedf87b4.jpeg "3_01")

「セキュリティ」タブを開いた後、「詳細設定」をクリックします。

![WS000071.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/0b4cb8f9-2442-fac8-50f9-9f1ef1dbdab0.jpeg "3_02")

「所有者」が現在ログイン中の Windows ユーザであることを確認した後、「アクセス許可」タブで「継承の無効化」をクリックします。

![WS000072.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/e6c38cce-e9ee-a38a-aa3f-0edec04fdad6.jpeg "3_03")

「このオブジェクトから継承されたアクセス許可をすべて削除します。」をクリックします。

![WS000040.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/41d16d28-b8c0-ad82-a330-1982d5935116.jpeg "3_04")

この段階で権限がすべて消えるので、「追加」をクリックします。

![WS000073.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/d704c9bf-51a5-e3c0-f611-6ca4668ae200.jpeg "3_05")

「プリンシパルの選択」をクリックします。

![WS000042.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/fe99b052-e705-dc70-dc61-3f65ed5d8363.jpeg "3_06")

ログイン中の Windows ユーザ名を入力した後「名前の確認」をクリックし、正常にユーザ名が入ったら「 OK 」をクリックします。

![WS000074.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/cec32829-c883-c91e-d484-a4dcaea57b2c.jpeg "3_07")

「読み取り」だけにチェックが入った状態にして、「 OK 」をクリックします。

![WS000075.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/ce8a1734-218d-a6e1-d286-166982bc72fa.jpeg "3_08")

「適用」をクリックして設定を保存し、「 OK 」をクリックしてウィンドウを閉じます。

![WS000076.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/abb46dce-9528-26fc-9fce-5e6c2774bdac.jpeg "3_09")

再度「 OK 」をクリックして完了です。

![WS000077.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/f077c5dd-d60a-af65-8e9f-82dbc100e16b.jpeg "3_10")

これで、 .pem ファイルの権限が最低限のものとなりました。

### 4. SSH コマンド

それでは作成した Linux インスタンスに SSH コマンド で接続してみます。
なおこちらも、最新の手順は以下の AWS 公式ドキュメントを参照してください。
※英語のページです

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/openssh.html

接続で使用するコマンドは以下の通りです。

```DOS:ターミナル
> ssh -i .pemファイルのパス ec2-user@インスタンスのドメイン名
```

:::note info
「 ec2-user 」は Amazon Linux 2 のインスタンスにおけるデフォルトのユーザ名です。
このユーザ名は OS によって異なります。
詳細は以下ページを参照してください。
※英語のページです

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html#connection-prereqs-get-info-about-instance
:::

これを、今回は「スタート」⇒「すべてのアプリ」⇒「ターミナル」から実行します。
コマンド自体は「 Windows PowerShell 」でも「コマンド プロンプト」でも同じですので、どちらの画面を使用しても大丈夫です。

![WS000068.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/b8c3daaf-747f-7052-5577-1fbe2ee3ffe5.jpeg "4_01")

![WS000067.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/55759cc9-107c-f4e5-45bc-722772cda3c0.jpeg "4_02")

![WS000066.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/9c916c48-2128-5f41-d850-a347edb89950.jpeg "4_03")

ターミナル上で SSH コマンドを実行すればインスタンスに接続できます。
なお、初回接続の際はホスト登録のメッセージが出るので、「 yes 」と入力する必要があります。

```DOS:ターミナル
PS E:\work\aws>ssh -i E:\work\aws\TEST_KEY.pem ec2-user@***
The authenticity of host '***' can't be established.
ECDSA key fingerprint is SHA256:***.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '***' (ECDSA) to the list of known hosts.
   ,     #_
   ~\_  ####_        Amazon Linux 2
  ~~  \_#####\
  ~~     \###|       AL2 End of Life is 2025-06-30.
  ~~       \#/ ___
   ~~       V~' '->
    ~~~         /    A newer version of Amazon Linux is available!
      ~~._.   _/
         _/ _/       Amazon Linux 2023, GA and supported until 2028-03-15.
       _/m/'           https://aws.amazon.com/linux/amazon-linux-2023/

[ec2-user@*** ~]$
```

 EC2 インスタンスに接続できました。

### 5. SCP コマンド

 SCP コマンドでの資材転送も、同じように実施できます。
接続で使用するコマンドは以下の通りです。

```DOS:ターミナル
> scp -i .pemファイルのパス 転送元パス ec2-user@インスタンスのドメイン名:転送先パス
```

```DOS:ターミナル
PS E:\work\aws> scp -i E:\work\aws\TEST_KEY.pem E:\work\aws\test.txt ec2-user@***:/tmp/test.txt
test.txt                                                                              100%   37     0.0KB/s   00:00
PS E:\work\aws>
```

```DOS:ターミナル
[ec2-user@*** ~]$ ls -l /tmp/test.txt
-rw-rw-r-- 1 ec2-user ec2-user 37 May  2 00:59 /tmp/test.txt
[ec2-user@*** ~]$
```

### 6. TeraTerm

最後に TeraTerm でも接続してみましょう。

まずは「ファイル」⇒「新しい接続」を選択します。

![002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/6c3c1e65-a6ae-8b43-21b7-567b8716823f.png "6_01")

「 TCP/IP 」を選択し、「ホスト」に 接続先のドメイン名を入力します。
「サービス」は「 SSH 」を選択し、「 TCPポート」は「 22 」、「 SSHバージョン」は「 SSH2 」、「 IPバージョン」は「 AUTO 」または「 IPv4 」を選択します。

![WS000085.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/472594c3-ee2c-1c5e-6372-fede7d99c561.jpeg "6_02")

初回接続の際は以下のようなホスト登録画面が出るので、「続行」をクリックします。

![WS000092.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/b1cb511a-95b2-bd39-7373-09b37d5778d3.jpeg "6_03")

ユーザ名に「 ec2_user 」と入力し、「認証方式」に「 RSA/DSA/ECDSA/ED25519鍵を使う」を選択します。
選択したら、「秘密鍵」の右にある「 ... 」をクリックします。

![WS000088.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/354dcce7-21bf-8b32-46f2-35e3081ad68c.jpeg "6_04")

鍵ファイルを選択して「開く」をクリックします。

![WS000094.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/5e2ed55c-6db4-cc9c-7199-48fedaa4e1a3.jpeg "6_05")

鍵ファイルのパスが入力されたら、「OK」をクリックして接続します。

![WS000091.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/cc99f473-c23f-3549-88d6-5c85d6428879.jpeg "6_06")

これで接続できました。

![WS000095.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465018/2c4f1c4a-04d1-26e4-34ca-cf96d4cfabad.jpeg "6_07")

[戻る](https://qiita.com/frozencatpisces/items/75bf3e19f6328786e336)