Puttyを利用すると、リモートサーバ上のMySQLにSSHトンネル経由でアクセスできます。
SSHトンネルは踏み台を用意したりといろいろなことが出来ますが、今回は開発マシンから単純にリモートサーバ上のMySQLに接続する手順です。
本番サーバのDBに外部からアクセスしたいけど、アクセス制御が面倒だし通信経路もセキュアじゃないし・・・という場合に利用できるかなと思います。
今回はMySQLと銘打っていますが、他のアプリケーションでも同様にSSHトンネルが利用できます。
SSHトンネルの設定
まずはリモートサーバへのSSHの設定
SSHでログインするユーザ名の指定(必須ではない)
SSHのユーザ名をココで指定しておくと毎回入力しなくて良いので楽チンです。
keepaliveの設定(必須ではない)
keepaliveに値を入れておくと、一定時間経過してSSHが自動的に切断されることがなくなります。
SSHで利用する秘密鍵の指定(必須ではない)
SSHトンネルの設定
いよいよ本題のSSHトンネルです。
Source port がローカルマシン上で待ち受けるポート番号
Destination が、どこに接続するのかの情報。
今回、 Source portには 4000番 を、 Destination には localhost:3306 を指定します。
これは、 localhost上の4000番ポートへの接続は、SSH接続先にSSHアクセス後、そのサーバ上で3306番ポートにフォワードされる、 といった意味合いになります。
ローカルで待ち受けるポートはウェルノウンポート且つ他のアプリケーションから使われていないものを指定します。
登録
入力が終わったら Add をクリックします。
すると以下のような感じになります。
保存する
分かりやすい名前を付けて、セッションを保存しておきます。
実際にSSHトンネル経由でアクセスする。
SSHトンネルを張る
先ほど作成したSSHトンネル用のセッションに普通にアクセスします。
これで、ローカルとリモートサーバ間にSSHトンネルが張られました。
MySQLにアクセスする。
作成したSSHトンネルのローカルのポート(今回は4000番)を指定してMySQLにアクセスするだけです。
なお、リモートサーバまでSSH経由で接続された後、3306番ポートにフォワードされるので、MySQL的には接続元は 'root'@'localhost' になります。