この方法は ssh の基本的な機能である、ポート転送 (port forwarding) を使っています。
このテーマについては、あなたのメールの設定の好みに依存してさまざまなバリ エーションがあります。とにかく ssh が必要です。次のところから入手できま す。 http://www.ssh.fi/ とそのミラーサイト。 RPM 版は ftp://ftp.replay.com/pub/crypto/ から。それから Debian 版は ftp://non-us.debian.org/debian-non-US/ から (そしてそれぞれのミラーサイトから)。(訳注 : 一般的にいって暗号関 係のソフトウェアは国内からの入手の方が問題が少ないように思います。 ftp://ftp.kyoto.wide.ad.jp/pub/security/ssh/ などから入 手できることと思います)
ポート転送を始めるには次のコマンドを (訳注 : クライアント側で) 入力して ください。
ssh -C -f popserver -L 11110:popserver:110 sleep 5
さあ手にとってじっくりとコマンドを眺めていきましょう。
sshすべてをかなえてくれる魔法のプログラム ssh のバイナリ本体です。
-Cこれはデータの圧縮機能を有効にします。これを使うかどうかはお任せしますが、 とりわけダイヤルアップのユーザは重宝するでしょう。
-f一度 ssh が認証し、ポート転送を確立すると、他のプログラムを動かせるよう にバックグラウンドにフォークします。私たちは ssh のポート転送の機能を使 いますので、 tty へのアタッチは必要ありません。
popserverこれから接続する POP サーバを指定します。
-L 11110:popserver:110ローカルポートの 11110 をリモートサーバ popserver のポート
110 に転送します。一般ユーザでも転送できるように大きいローカルポート
(11110) を使用しています。(訳注 : 一般的に POP サーバのポート番号は
110 番です)
sleep 5ssh は自分自身をバックグラウンドにフォークした後にコマンドを実行します。
sleep はメールクライアントがサーバとの接続を確立するのに十分な
時間を稼ぐためのものです。これには 5 秒程もあれば十分でしょう。
他にも必要とあれば、適切なオプションを付け加えてください。例えば POP サー バとローカルでユーザ名が異なる場合には、ユーザ名の設定が必要です。
この為にはリモートサーバ popserver で sshd が動いている必要があります。しかし、そこにあなたのシェルアカウントは必要ありません。
``You cannot telnet here'' と表示する時間だけで、コネクションを設定する
には十分です。
ポート転送するためのコマンドの詳細について理解したなら、以下のコマンドを 試してみてください。
$ ssh -C -f msingh@popserver -L 11110:popserver:110 sleep 1000
popserver は POP サーバの名前です。 私のローカルマシン上でのユー
ザ名は manish なので、私は明示的に msingh と指定する必
要があります。(ローカルマシン上のユーザー名がリモートマシン上のユーザ名
と同じなら msingh@ の部分は必要ありません)
するとこう表示されます:
msingh@popserver's password:
そして自分の POP パスワードを入力します (あなたのシェルのパスワードと POP のパスワードは違うかもしれませんが、その場合シェルのパスワードを使っ てください)。できましたね。それではこれもできるはずです。
$ telnet localhost 11110
こんな感じに表示されればいいでしょう:
QUALCOMM POP v3.33 ready.
やりました。データは暗号化されてネットワークをこえて送られました。クリア テキストでの通信は私のローカルマシン内と POP サーバ内のループバックイン タフェース上だけです。