本番環境のMySQLへの接続にSSHトンネリングを利用しています
気がつけばMySQL Workbenchが開発終了となり、今後はVSCodeの拡張機能「MySQL Shell for VS Code」を利用することが推奨されているようですが、個人的にどうにも馴染めず・・・
そこで「DBeaver」を利用してDBを管理することにしました
SSHトンネリングの設定
まずは本番環境の概要を示します

MySQLがインストールされているdb1のサーバーはプライベートネットワーク上に構築されており、アクセスにはweb1を経由する必要があります
web1には公開鍵認証方式でのログインが設定された状態で、DBeaverにSSHトンネリングの設定を行います
具体的な設定内容は以下の通り


一般タブではDBの接続情報を設定します
注意したいのが接続先サーバーとポートで、ここではlocalhost:13306に設定しています(理由は後述)
SSHトンネリングはSSHタブから設定します
上から順に・・・
・Host/IP:DBへ接続するための踏み台サーバー(今回はweb1)
・Authenication Method:Public Key
・Private Key:プライベートキーを指定
ちなみに、上記の設定はJump serversを開き、Targetを選択して設定します
Port Fowardingの設定も必要で、今回は以下の通り設定しています
・Local host: localhost:13306
・Remote host:db1:3306
この設定で、リモートサーバー(db1)の3306ポートと、ローカルの13306ポートを関連付けます
(ローカルの13306ポートが、db1の3306ポートにフォワードされるため、一般タブで13306ポートを指定しています)
以上
DBeaverでSSHトンネリングを利用した接続設定の例を紹介しました
実際の商用システムでSSHトンネリングを利用しているシステムはどれくらいあるのかわかりませんが、セキュアな接続を行う上での参考になれば幸いです