Mac OS X で port forward

(日本の)勤務先のメール環境に社外からアクセスする手段として、VPN と特定サーバ経由の ssh による port forward がある。VPNInternet Explorer が必須で起動までの時間が長く、さらに全体に重い感じなので専ら port forward を利用していた。Windows 環境では Port Forwarder というアプリケーションがあり、一度設定すればメニューに登録したアプリを起動するだけなので便利に使っていた。
Mac でも port forward を使いたいのだが、どうも適当なアプリケーションが見つからない。だが、Mac OS XUNIX なので ssh コマンドが用意されており、これを使うことができる。
まずはターミナルを開き接続を試してみる。

$ ssh -l -L 110::110 -L 25::25

するとこんなメッセージが出る。
Privileged ports can only be forwarded by root.
Mac OSX は 3000番以下の port を使用する場合は root 権限が必要らしい。ここはとりあえず sudo コマンドを使う。

$ sudo ssh -l -L 110::110 -L 25::25

するとパスワードを聞いてくるので、自分のアカウントのパスワードを入力。次に ssh の接続先のパスワードを求められ、入力すると接続が成功したようだ。メールの送受信を試してみると上手くいっている。しかし2度もパスワードを入力するのは面倒だ。
ssh-keygen というコマンドで公開鍵と秘密鍵を生成し、公開鍵を ssh server へ転送する。使い方はこんな感じだ。

$ sudo ssh -l -L 110::110 -L 25::25 -i .ssh/id_rsa

これで一つは解決したがもう一方のパスワードも省いてしまいたい。root 権限が必要なのは使用する port番号は 3000番以下だからなので、使用する port番号を変えてみる。25番を3025番へ、110番を3110番へ変更。MTA(メールソフト) の設定も同時に変更する必要がある。

$ ssh -l -L 3110::110 -L 3025::25 -i .ssh/id_rsa

良さそうなのでこれを shell command 化する。秘密鍵の PATH は絶対PATH に変更した。この shell command を home directory 以下へ置くと Finder からも参照できるようになる。Finder からこれをダブルクリックすると、ターミナルが開きコマンドが実行される。これでかなり実用的になった。もう少し出来ることはありそうな気がするが、とりあえずここまで。
追記: Background で自動的に port forward を行うようスクリプトと設定を変更した。
http://d.hatena.ne.jp/tono-p/20101213/p1