SSHポートフォワードでAmazon LightsailのMySQLに安全にアクセスする。

SSHポートフォワードでAmazon LightsailのMySQLに安全にアクセスする。 Linux




概要

Amazon LightsailのlocalhostのMySQLに対して安全に作業を行う手段の一つとして
SSHのポートフォワード機能を紹介します。

背景

Lightsailにwordpressサーバを建てた時の記事。

【WordPress】AWS LightsailとCertbotでHTTPS化に挑戦してみた
概要AWS Lightsail (リンク)とCertbotでHTTPS化に挑戦してみた。ネットに散らばっている情報を元に"letsencrypt"や"sslなう。"を使ってみたが上手くいかなかった(bitnaminのせいか....)。...

Lightsailのイメージの一つであるbitnami wordpressを選択するとlocalhostのMySQLを利用することになります。
このイメージではデフォルトでphpmyadminが利用できるようになっていますが、これを利用するのは正直イケてません。
それなら3306ポートを解放する!?これもイケてはいません。
sshで接続してCLIからクエリを投げるというのもアリだとは思いますが、やっぱりGUIが使えるなら使いたいと思います。

なので、SSHのポートフォワードを利用して、localhostにポートをトンネリングさせた上で、”MySQL Workbench”や”Sequel Pro”といったGUIクライアントを接続する方法を紹介したいと思います。

ちなみにMySQL WorkbenchにはデフォルトでSSHトンネリング機能が付属しています。

SSHポートフォワード

このコマンドで行います。

ssh -f -N -C -L 3307:localhost:3306 username@hostname -p 22 -i ~/path/to/sshkey.pem 

オプションの説明

  • -f : バックグラウンド実行
  • -N : トンネリングを目的として利用する
  • -C : データを圧縮して通信
  • -L : マッピングの設定
  • -p : SSHのポート番号の指定
  • -i : sshキーのパス

-Lに関しては、 「3307:localhost:3306」の場合localhostの3307ポートをリモートの3306ポートにマッピングするという意味になります。

ローカルからは以下のコマンドで接続を確認することができます。

mysql -u root -p -h 127.0.0.1 --port=3307

参考

この辺りを参考にしました。

sshトンネル(ポートフォワード)を使ってリモートのMySQLにつなぐ - ServersMan@VPS(CentOS)でお気楽サーバー運営 (^^♪  (忘れっぽいので個人メモ用)
自宅のMacからServersMan@VPSに入ってるMySQL直接接続したいが、危険だからMySQLのポートなんか外部に開放..
SSHポートフォワーディングでMySQLに接続する方法 - St_Hakky’s blog
SSHポートフォワーディングでMySQLに接続する方法を調べたので、まとめておきます。 ○SSHポートフォワーディングでMySQLに接続する方法 まず、ポートフォワーディングを実行します。 ssh -f -N -C -L 10000:localhost:3306 user@nantoka.com -p 22以下、説明に...