AWS Lightsailで立ち上げたWordPressのサイト運用に際し、SSHコマンドでLightsail上のWordPressディレクトリにアクセスする手順を解説する。
1. 事前準備
結論、AWS LightsailにSSH接続を行うためには最終的に以下のようなコマンドを実行して接続する。
ssh -i [秘密鍵のパス] bitnami@[アクセス先のStatic IPアドレス]
以下の2つの情報が必要となる。
- 秘密鍵
- アクセス先のStatic IPアドレス
秘密鍵とIPアドレスの場所
AWS Lightsailにログイン後に、該当のインスタンスを選択する。
インスタンスの詳細画面にて「Use your own SSH client」の項目を確認し、「CONNECT TO」のところでIPアドレスを、「Download default key」のリンクを押下して秘密鍵をインストールする。インストールした秘密鍵は、Macの場合`~/.ssh`ディレクトリに格納する。
2 SSH接続
冒頭で記載した通り、以下のコマンドでSSH接続する。
ssh -i [秘密鍵のパス] bitnami@[アクセス先のStatic IPアドレス]
パーミッションのエラーが出る場合の対処法
秘密鍵をダウンロードして即座にSSH接続を実装すると、以下のようなエラーになるケースがある。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'xxx.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 "xxx.pem": bad permissions
bitnami@xxx.xx.xx.xx: Permission denied (publickey).
これは簡単にいうと、0644
というパーミッション(権限)が所有者以外の他のユーザーからもアクセス(読み取り)が可能であるために出現しているエラー。つまり、権限を所有者のみに限定するように変更すればこのエラーは解決する。秘密鍵のファイルに対して以下のコマンドを実行する。
chmod 600 xxx.key
もう一度、SSH接続をトライすると成功するはず。
パーミッションについて補足
UNIXおよびUNIX系のオペレーティングシステム(Linux, macOSなど)において、ファイルやディレクトリのアクセス権限は通常以下の3つのグループに分けて設定される。
- 所有者(Owner)
- グループ(Group)
- その他(Others)
0644
というパーミッション(権限)設定は、以下のようなアクセス権限を表す。
- 所有者(Owner)
- 読み取り(Read)と書き込み(Write)権限
(6
は4
(読み取り)+2
(書き込み)を示している)。
- 読み取り(Read)と書き込み(Write)権限
- グループ(Group)
- 読み取り(Read)のみの権限(
4
)。
- 読み取り(Read)のみの権限(
- その他(Others)
- 読み取り(Read)のみの権限(
4
)。
- 読み取り(Read)のみの権限(
数値での表現において、各数字は以下のような意味を持っている。
- 4: 読み取り(Read)
- 2: 書き込み(Write)
- 1: 実行(Execute)
したがって、0644
という権限設定は所有者だけが書き込みが可能で、所有者、グループ、その他のユーザーは読み取りだけが可能なファイルを意味している。
chmod 600 xxx.keyというコマンドで、グループ(Group)、その他(Others)の権限が0となり、どの種類のアクセスも許可されない状態となる。
3. ディレクトリを操作する
SSH接続が成功したら、次は必要なディレクトリを操作するためのコマンドを実行する。2023年8月現在、ルートディレクトリでlsコマンドを実行したら以下のような構造になっていた。
bitnami@ip-xxx-xx-xx-xx:~$ ls
bitnami_application_password bitnami_credentials htdocs stack
結論、cd stack/wordpressでワードプレスディレクトリに移動できる。