LinuxでOpenSSHでフォワーディングしてみるテスト。

なんか、Linuxって不便だよねって思った瞬間。

通常のフォワーディング

Wellknownポートはrootでしかbindingできませんよ。

root# ssh -L %local_portnum%:%フォワーディングして接続したサーバーから見てのホスト名%:%Remote_portnum% %Remote_Server%

お好みで鍵を使用しても。

「%フォワーディングして接続したサーバーから見てのホスト名%」ってのはようはまぁ、SSHしたサーバーから見てlocalhostならlocalhostって書けばいいだけのことで。

たとえば、mail.example.comというメールサーバーがあって、そこにSSH接続してSMTPセッションを張る場合は

root# ssh -L 2500:localhost:25 username@mail.example.com

とすりゃSPAM対策とかでリモートから送信できないけどmail.example.com自身からは配送できる場合とかに使える。

MySQLを使用してみたりしたい場合。

普通に

root# ssh -L 3306:localhost:3306 username@db.example.com

とかして

root# mysql -h localhost -P 3306 -u username -p

とかしたいんだけど、無理だったりするわけだ。
てかmysqlコマンドは「-h」のパラメーターが「localhost/127.0.0.1」の場合はポートの指定無視しやがる(まぁ、Unix Socket使ってんだろうけどさ)

というわけで、bindingするアドレスを指定してフォワーディングする機能があったりするんですが…

最近のLinuxのたいていの(?)ディストリビューション

どれを取っても対応したバージョンが入っていませんorz

というわけでOpenSSH4.2をダウンロードしてきててけとーにインストール(別ディレクトリ推奨)してそのsshを使って

root# ssh -L 192.168.0.1(自分自身のIPアドレス):3306:localhost:3306 username@db.example.com

とかしたあと

root# mysql -h 192.168.0.1 -P 3306 -u username -p

とかやったりすると接続できるようになるはずです。

#てかこのまま放置ってできないかな…いちいちシェル上げっぱなしってのもありえないし。