SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

踏み台サーバーを経由したMySQLアクセス(ポートフォワーディングで)

問題

Bサーバーからなら接続可能なMySQLサーバーAに接続したいのだけど、BサーバーにsshができるCサーバーから接続したい。

C(クライアント) → B(踏み台) → A(DB)

(C → A はできなず、C → B、B → A ならできる構成で)

答え

sshポートフォワーディングするとこんな感じ。

ssh -f -N -L 3306:{DB_HOST}:3306 -i {SECRET_KEY} {SSH_USER}@{SSH_HOST}

パスワード手入力なら

ssh -f -N -L 3306:{DB_HOST}:3306 {SSH_USER}@{SSH_HOST}

例)

ssh -f -N -L 3307:172.28.123.123:3306 sshuser@192.168.123.123

上記コマンド実行後、ローカルの3307ポートに接続すると、ポート転送で 192.168.123.123 を経由して 172.28.123.123 に接続できる。

mysql -h 127.0.0.1 -P 3307 -u dbuser -p

ポート転送設定をしたままにしておけば、phpなどプログラムからでもローカルの指定のポートに接続すると、転送先のMySQLサーバーに接続できる。

MySQLから見ると、接続元は踏み台サーバーになるので、そのようにユーザー、権限の設定をするとよい。

関連するメモ

コメント