BitnamiでインストールしたphpMyAdminへのアクセス方法

設定方法

Bitnamiで稼働しているphpMyAdminにSSHトンネルを設定しPCからアクセスする方法

# wsl上でのSSHトンネルの設定
ssh -N -L 8888:127.0.0.1:80 -i キーファイル bitnami@サーバIPアドレス &

# SSHトンネル設定後、ブラウザでphpMyAdminにアクセス
http://127.0.0.1:8888/phpmyadmin

説明

BitnamiでインストールされたphpMyAdminにブラウザでアクセスする方法です。

AWS LightsailでWordPressをインストールした際、phpMyAdminもインストールされ使用可能な状態になっていた。
phpMyAdminの設定ファイル /opt/bitnami/phpmyadmin/config.inc.php を見ると、127.0.0.1経由でしかアクセスを許可していません。
127.0.01経由ということは、インターネット経由でアクセスはできないように制限しているということです。
セキュリティ上の配慮でこうなっているのだと思われます。データベース操作が可能なツールをインターネット経由で利用できるようにするのは、問題だと思うので、この制限を行うのはよく分かります。そうですよね。。 phpMyAdminは狙われますしね。

では、どうアクセスするのか?

検索すると、インターネット経由でのアクセス許可を設定して、アクセス元IPアドレスの制限を設定する。というような説明をしているページがありました。
これ、個人的には気持ちが悪いので設定したくありません。アクセス制限しているとはいえ、無法地帯のインターネットからアクセス許可を設定するのは怖いです。

じゃあどうするのか?さらに探してみるとアクセス方法はBitnamの公式ページにちゃんとアクセス方法が記述されてました。

Connect to phpMyAdmin (bitnami.com)

英語のページなので読むのに躊躇してしまいがちですが、今は簡単に翻訳できるので英語のドキュメントへのアレルギーも低くなりました。英語でも読みましょう、ドキュメント。

Bitnamiのページによると、SSHトンネル経由でアクセスすればいいとのことです。久しくSSHトンネル経由でアクセスしていないので忘れてました。

wsl上で下記のようにSSHトンネルを作成します。keyfileはサーバにSSHでアクセスする際に使用しているものを設定し、serverはアクセス先のIPアドレスやドメイン名を指定します。

ssh -L 8888:127.0.0.1:80 -i keyfile bitnami@server &

これで、ローカルPC上のポート8888のアクセスを、サーバー上の127.0.0.1のポート80に転送するようになったので、ブラウザで下記のURLにアクセスすると phpMyAdminのページが表示されます。

http://127.0.0.1:8888/phpmyadmin/

表示後、データベースのユーザIDとパスワードを入力してログインすれば、テーブル操作などが可能になります。


SSHトンネルとは?

SSHトンネルとは何ぞや?
ロカール上の特定のポートへのアクセスをSSH経由でサーバ上の指定したIPアドレスとポートに転送する、という感じでしょうか?
分かりずらいので、Copilotに質問したところ下記のように回答してくれました。

自分
sshトンネルとは

Copilot
SSHトンネルは、SSHポートフォワーディングとも呼ばれており、SSHによって確立した通信経路を利用して、クライアントが直接アクセスできないサーバーのポートへ転送してくれる仕組みのことです。具体的には、以下のような仕組みです。

SSH(Secure Shell)は、暗号化や認証技術を利用して、リモートホストのシェルを安全に利用するためのプロトコルです。SSHを使用するには、サーバー側にSSH接続を受け付けるデーモンが必要です。

SSHポートフォワーディングは、SSH接続時に「-L」オプションを付与して、ローカルポートをリモートホストのポートに転送します。これにより、外部からアクセスできないサーバーのポートに間接的にアクセスできるようになります。
ログイン時にポート転送のみを行いたい場合は、「-N」オプションを付与します。この状態でポート転送のみが行われ、SSHコマンド自体は実行されません。
SSHトンネルを使用することで、安全にリモートサーバーにアクセスしたり、データを転送したりできます。 🚀

うん、賢いですよね。それなりの回答を簡単にもらえる、いい時代です。