&tag(ssh, ポートフォワード); *目次 [#v8d01732] #contents *参考情報 [#r588d4eb] -[[ssh]] *ポートフォワードとは何か [#wdf4f2a1] -サーバーで許可されている事が条件だが、サーバーのポートをローカルのポートであるかのごとく操ることのできる技術。 -これを使えば例えばローカル接続してないMySQLにリモートからssh経由で安全に接続することができる。 *例 [#sec61f8f] **リモートの3306ポートをローカルの13306ポートとして接続しmysqlコマンドを実行 [#f26711e1] -"-f"を指定するとバックグラウンドで実行。"-L 13306:localhost:3306"がポート変換の設定。"sleep 10"はリモートで実行するコマンド。なにもなければ10秒スリープした後sshは終了するが、ポートが使われている間は終了しない。つまりmysqlコマンドでポート13306を使っていてこの間はssh接続がキープする。このような書き方はシェルスクリプトで使える。 #pre{{ $ ssh -f -L 13306:localhost:3306 foo@barserver sleep 10 $ mysql -h 127.0.0.1 --port 13306 -udbuser -pdbpassword testdb -e "select count(*) from testtable" }} -次のように"-N"を指定するとそこで処理が止まる。別ターミナルでコマンドを実行する場合こっちのほうがわかりやすいかも。 $ ssh -N-L 13306:localhost:3306 foo@barserver