【初心者】AWSのlightsailへSSH、SFTP接続しWordPressを見る

※本稿は記事：[【初心者】AWSのlightsailでWordPressを導入するまで](https://qiita.com/tomokei5634/items/9719731e355ad5299fc2)の続きとなるものです。

本稿では、Lightsailのインスタンスへ**SSH接続**する手順を示します。また**FileZilla**のようなFTPクライアントから**SFTP接続**する手順も示します。

※本稿はos:macの場合となります。要点はwinでも同じですので、適宜に読み替えてください。

# SSH/SFTP接続に共通する準備

SSH接続およびSFTP接続のどちらにおいても、用いる情報は（必要な情報は）下記の３つです。

* アクセス先（IPアドレス/ドメイン）
* ユーザー名
* 秘密鍵

まずLightsailへアクセスし、これらの情報を集めます。

## 手順

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/1d7c6c12-8463-d5bc-01b3-b6a234e880e6.png)

* １）Lightsailの`ホーム`をクリック
* ２）インスタンス名をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/91903f51-1309-1808-9303-71d2486e8476.png)

* （A）アクセス先です。IPアドレスをメモしてください。
* （B）ユーザー名です。メモしてください。
* （C）`アカウントページ`をクリックした先から秘密鍵をダウンロードできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/88aa86ab-f071-8d78-43fd-f5058fd50676.png)

* （C-1）`ダウンロード`をクリックすると、秘密鍵をダウンロードできます。
* ダウンロードした秘密鍵を任意のディレクトリへおいてください（macなら`~/.ssh`ディレクトリが一般的ではないでしょうか）
* なお本稿においては、ダウンロードした秘密鍵を`~/.ssh/LightsailDefaultKey-ap-northeast-1.pem`と記述します。


以上で、SSH接続およびSFTP接続に必要な情報が集まりました。


# LightsailインスタンスへSSH接続する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/402da49b-cf00-0ddf-aacf-3819b221741b.png)

## SSHの接続コマンド
* AWS上のマニュアル：[SSH を使用した Linux インスタンスへの接続](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html)

* ターミナルから`ssh`コマンドを入力しLightsailインスタンスへ接続します。

```terminal:terminal
$ ssh -i /path/my-key-pair.pem my-instance-user-name@my-instance-public-dns-name

例）
$ ssh -i ~/.ssh/LightsailDefaultKey-ap-northeast-1.pem bitnami@54.123.456.73
```

| コマンド部位 | 入力例 | 説明 |
|:--|:--|:--|
| -i /path/my-key-pair.pem  | -i ~/.ssh/LightsailDefaultKey-ap-northeast-1.pem  | オプション`-i`で秘密鍵の場所を指定します。  |
| my-instance-user-name  | bitnami  |  入力するユーザー名はインスタンス毎で決まっています。Bitnami-WordPressインスタンスの場合は`bitnami`です（※1） |
|  my-instance-public-dns-name | 54.123.456.73  | インスタンスのIPアドレスを指定します  |

※1：その他のインスタンスの場合は[PuTTY をダウンロードし、SSH を使用して接続するようにセットアップするAmazon Lightsail](https://lightsail.aws.amazon.com/ls/docs/ja_jp/articles/lightsail-how-to-set-up-putty-to-connect-using-ssh)を参照

## 補足）エラー：Permission denied / SSH接続ができない場合

* 下記のようなエラーが出た場合の対処方法を示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/19e123f5-e90d-fa06-c2f5-973cee43976a.png)

```
Permissions 0644 for '~/.ssh/LightsailDefaultKey-ap-northeast-1.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 "~/.ssh/LightsailDefaultKey-ap-northeast-1.pem": bad permissions
bitnami@54.123.456.73: Permission denied (publickey).

（訳）
'~/.ssh/LightsailDefaultKey-ap-northeast-1.pem' の権限0644は開き過ぎです。
秘密鍵ファイルに他人がアクセスできないようにする必要があります。
この秘密鍵は無視されます。
読み込むキー"~/.ssh/LightsailDefaultKey-ap-northeast-1.pem": 不正なパーミッション
bitnami@54.123.456.73: パーミッション拒否 (公開鍵で)
```

* 冒頭の`Permissions 0644 for XXX are too open`がSSH接続の失敗理由です。
* 秘密鍵のパーミッションは`600`か`400`である必要があります。

```terminal:terminal
$ ls -al ~/.ssh/LightsailDefaultKey-ap-northeast-1.pem
```

* ↑このコマンドでパーミッションを確認することができます。

| 番号 | 記号 | 判定 |
|:-:|:-:|:-:|
|  -rw-r--r-- | 644  | NG  |
|  -rw------- | 600  | OK  |
|  -r-------- | 400  | OK  |

* 今回は秘密鍵のパーミッションが`644`だったのでアクセスが拒否されました。パーミッションを変更します。

```terminal:terminal
$ chmod 600 ~/.ssh/LightsailDefaultKey-ap-northeast-1.pem
```

* もう一度、`ls -al` を実行し、パーミッションを確認してください。
* その後、再度にSSH接続を試してください。
* 参考サイト：[ssh接続でPermission deniedと表示されたときの対処法](https://note.mokuzine.net/ssh-permission-denied/)

SSH接続については以上です。
なお、WordPressのあるディレクトリについては、本稿の下部に記載します。

---

# SFTP接続

* AWS上のマニュアル：[SFTP を使用して Amazon Lightsail の Linux または UNIX インスタンスに接続する](https://lightsail.aws.amazon.com/ls/docs/ja_jp/articles/amazon-lightsail-connecting-to-linux-unix-instance-using-sftp)
* 接続に使う情報はSSH接続と同じです。
* 下記は**FileZilla**を使った場合の設定ですが、他のFTPクライアントでも要点は同じです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/805a43d6-517e-07f2-51b5-4047b29b7878.png)

* 1）プロトコルは`SFTP`を選択
* 2）ホストはLightsailインスタンスのIPアドレス（例：`54.123.456.73`)
* 3）ログオンタイプは`鍵ファイル`を選択
* 4）ユーザー名はインスタンスのデフォルトユーザー名（例：`bitnami`)
* 5）鍵ファイルは、Lightsailのアカウントからダウンロードした秘密鍵を指定してください
* 6）接続してください
* 7）状態の確認（ちゃんと接続できているか）

## 補足）WordPressのある場所
単に接続しただけだと、どこにWordPressのディレクトリがあるか分かりにくいです。WordPressはココにあります↓

```:path
/opt/bitnami/apps/wordpress/htdocs
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/fe64878a-5017-35f8-0a75-2011e685ab77.png)

* 「毎回ディレクトリを潜っていくのは大変だ！」って方は、FileZillaの**デフォルトのリモートディレクトリ**を設定しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/283603/74213301-f774-c207-2f7a-c403ae0e5f7b.png)


---

本稿は以上となります。