Windows でのSSH - TeraTerm と TTSSH を使う
− マスターしたい ポートフォワーディング機能 −

・ TeraTerm と TTSSH


・ ダウンロードとインストール

どちらも「窓の杜」からダウンロードすることが可能です。 作者のページも載せておきます。

Tera Term Pro v2.3 ... (作者のページ http://hp.vector.co.jp/authors/VA002416/)
TTSSH v1.5.4 ......... (作者のページ http://www.zip.com.au/~roca/ttssh.html)

ダウンロード後、適当なフォルダで解凍します。まず Tera Term Pro の セットアッププログラム setup.exe を使用してインストールします。続いて TTSSH を Tera Term Pro のインストールされたフォルダにコピーします。 readme.txt が 両方のアーカイブファイルで名前が重複していますので、 適当に処理をしてください。


・ 起動とログイン

以上の設定を行ったら、ttssh.exe を実行することで、Tera Term + TTSSH が 実行されます。以下に初期画面を示します。接続ホスト名と、起動サービス名を 選択してください。Telnet を選ぶと 通常の Tera Term として起動します。 SSH を選ぶと Port は 22番が選択されるようになっています。




初めてホストに接続する場合には、以下のダイアログボックスが表示されます。 ここでは チェックボックスをチェックして、既知のホストとして 登録してください。 2回目からはこのダイアログボックスは表示されずに、 すぐに 次のログインダイアログが表示されます。




続いてユーザ名とパスワードを入力します。RSA公開鍵暗号方式の設定を行って いない場合は、"Use plain password to login" を選択します。この時点で、 接続は暗号化されていますが、より安全のためには RSA 公開鍵暗号方式を利用する ことをお勧めします。 RSA 鍵暗号方式を設定した場合は、Use RSA key to login を 選択し、秘密鍵を指定します。 SSHではなくTelnetを選択した場合は以下の認証画面は表示されず、直接ターミナル 画面でログイン操作を行う通常の telnet モードとなります。



正しくログインできると以下の画面が表示され、コマンドを受け付けます。 あとは、通常のターミナルとして操作が可能です。



・ SSH とポートフォワーディング機能

SSH を使用する主な目的は通信路を暗号化することですが、SSH はそれ以外にも Port Fowarding 機能を有しており、暗号化されていない通常の接続を、 SSH による暗号化された通信のトンネルの中を通すことができます。

2台のコンピュータが SSHによって接続されているとき、POP3のような他のサービス を行う場合を考えてみます。


通常 端末のメールソフトは、サーバの 110番 ポートに接続を行います。 下図の場合、端末側のメールソフトの POP3 サーバの設定は以下のとおりです。

[メールクライアントのPOP3サーバ設定]
サーバ:234.56.67.20   ポート:110

この接続を SSHを利用したポートフォワーディングによる接続に変更してみます。
まず、端末側で SSHクライアントを起動して以下の設定で接続します。

[SSHクライアントの接続先設定]
サーバ:234.56.67.20   ポート:22

この状態で、22番ポートによる暗号化された接続が確立します。

続いて、SSHクライアントに ローカルマシンの110番ポートへのアクセスを SSHサーバ(SSHD)の110番ポートへのアクセスに変換するよう設定します。 (設定方法については後述)

[SSHクライアントでのポートフォワーディング設定]
localhost: 110  -->  234.56.67.20: 110

この場合メールソフトは、サーバの110番ポートに対して接続を行うのではなく、 SSH の起動している端末、つまり 自分自身(localhost)の110番ポート に 接続します。

[メールクライアントのPOP3サーバ設定]
サーバ:localhost(127.0.0.1)   ポート:110


ここで注意すべき点は、ポート転送先の設定は、SSHクライアントから見た 相手ではなくて SSHサーバ(SSHD)から見た接続先 であるということです。 この場合、SSHサーバと POP3サーバは同じマシン上ですから、ポートの転送は

[SSHクライアントでのポートフォワーディング設定]
localhost: 110  -->  localhost: 110
(123.45.67.10)       (234.56.67.20)

と記述しても構わないことになります


以上を理解した上で、ルータや FreeBSDによるNATマシン等による グローバル アドレスとローカルアドレスの変換を行っているサーバへの接続について考えて みましょう。
この場合、ローカルアドレスを持つサーバは、ルータ(NAT)のローカルサーバ 機能により、ポート22番を グローバルアドレス 234.56.67.20 のポート22番に 割り当てているものとします。 つまり、外部からルータ(234.56.67.20)の 22番ポートにアクセスした場合、アドレス 192.168.123.20 の22番ポートに アクセスが変換される場合を想定します。



この場合の設定は、

[SSHクライアントの接続先設定]
サーバ:234.56.67.20   ポート:22

[SSHクライアントでのポートフォワーディング設定]
localhost: 110  -->  192.168.123.20: 110

[メールクライアントのPOP3サーバ設定]
サーバ:localhost(127.0.0.1)   ポート:110

となります。
ポートフォワードの転送先設定は、SSHサーバ(SSHD)が稼動しているマシンに 限定されるわけではないので、ローカルネットワーク側のPOP3サーバに SSHサーバ(SSHD)がアクセスできる他のサーバ を指定しても構いません。

通常の接続ではメールクライアントが動作する端末から、プライベート ネットワーク内のメールサーバにアクセスすることは不可能ですが、 ポートフォワーディング機能を使用することで、SSHサーバ(SSHD)が アクセスできるサーバであれば、プライベートネットワーク内のサーバに アクセスすることができるようになります。


・ Tera Term + TTSSH の ポートフォワーディング設定

実際に Tera Term + TTSSH のポートフォワーディング設定を行ってみましょう。 ここでは FTP 21番ポートの転送を行ってみることにします。 FTP の場合、 データ転送ポートのほかに制御用ポートを必要としますので、通常の FTP転送は 残念ながら ポートフォワーディング機能で利用することはできません。
パッシブモード (passive mode) 転送をサポートする FTPクライアント であれば利用することができます。 フリー FTPソフト ffftp で使用できることを 確認しています。

設定は、[Setup] - [SSH Fowarding] メニューから行います。ダイアログが起動 しますので、[Add]を選択して 転送するポートと転送先を指定します。




Foward local port と、to remote machine、port に設定を行います。

Foward local port は、FTPの場合 21番を指定しますが、 Tera Term + TTSSH が実行されている端末のポート番号を自由に指定できる ため、例えば 8021番にすることも可能です。 使用する FTP クライアントソフトの 接続先は、接続しようとするホスト ではなく、SSH が実行されているローカルマシンを指定しててください。 ここのポートも上記で設定したもの、例えば8021番にする必要があります。

一方 to remote machine の部分は、クライアントから見た設定ではなく SSHサーバ(SSHD)が実行されているサーバから見たマシン名とポート番号 を設定してください。 接続するサーバが、ルータなどのファイアウォールを経て ローカルアドレスで設定されている場合、そのローカルアドレスを 設定することになります。 通常 FTPサーバは21番ポートで待ち受けていますから、転送先ポート番号は 21番(FTPポート)を指定しなければなりません。


以上で設定は終了です。 Tera Term + TTSSH で サーバに接続した状態で、ローカルマシンの指定ポートに 接続すると、接続内容は SSHによって 指定した リモートサーバの指定ポートに 転送されることになります。 FTP だけでなく 他のサービスも簡単に転送を 行うことが出来ます。
以下にポートフォワーディングが正しく設定できた状態を示します。



ポートフォワーディングを用いることで、クライアントとサーバ間の通信は 22番ポートのみを介して 行われ、その 通信内容は暗号化される ことになります。

ファイアウォール越しに接続する場合に、フィルタで POP3 や FTPといった ポートを閉じてしまった状態でも これらのサービスを利用することが可能 なわけです。 さらに、接続を受ける POP3 や FTP サーバも、SSHサーバからの 接続だけを許可すればいいことになります。 このため、余分なポートを外部に 対して公開しなくて済むことになり、システム全体のセキュリティを向上させる ことが可能となります。



TOMOsan Top Page に戻る
パソコン・プログラミングに戻る


Copyright(c) 2001 Tomohiko Saito. All rights reserved.
last update :