SSHってかんたんなのね


このページではCSSを利用しています。CSSに対応したブラウザで御覧になると、ちょっとは見やすくなるかもしれません。Netscape Communicatorの場合、JavaScriptを有効にしておかないと、CSSが有効にならないようです(スタイルシートを有効にしただけではダメ)。また、Lynxやw3m等のテキストベースブラウザでも内容が理解できるようには心がけています。


はじめに

細かな蘊蓄は省いて、手っ取り早くSSHを使うための手順を示します。SSHには既にVersion2系が存在しますが、ここでは、Version 1系を対象として説明を進めます(TTSSHがSSH2プロトコルに対応していないためです。※)。また、SSHがインストールされていない場合は管理者にお願いしてインストールしてもらって下さい。あなたが管理者の場合はすぐにインストールしましょう。インストール自体ははそんなに面倒ではないと思います。

以下の手順で完全にうまく行くとは限りません。SSHをインストールした管理者の設定やポリシーによってはうまく行かないものもあるかも知れません。特に、ssh1とssh2が一緒にインストールされている環境では以下の説明のほとんどが破綻すると思われます(苦笑)ので、すべての(UNIX)コマンドの後ろに`1'をつけて(ssh-keygen->ssh-keygen1, scp->scp1等)読み替えてください。

(※ 2005年4月追記 現在では、Tera Term Pro+TTSSHベースの環境から派生したTeraTerm Pro Webや、Yutaka HirataさんによるTTSSH2といった、TeraTermの環境でSSH2が利用可能なソフトが存在します。また、PuTTY + PuTTY で ISO 2022 による日本語表示・入力を可能にするパッチや、PoderosaといったSSH2対応のWindows用ソフトも利用できます。

SSH1とSSH2は同じ目的で利用されますが、プロトコルとしては別物ですので相互接続性はありません。SSH1には以前、不正なデータを挿入する攻撃(insertion attack)が可能になってしまうという問題がありましたが、現在では対策が講じられた結果、この攻撃の実現は非常に難しくなっています(「OpenSSH プロジェクトの目標」参考)。したがって、一概にSSH1を使い続けることが危険で、何がなんでもSSH2を使わなければならない、ということはありません。しかし、現在の開発の本流はSSH2にありますので、特別な理由がない限りはSSH1からSSH2に乗り換えたほうが良いでしょう。また、SSH1、SSH2ともに各実装の過去のバージョンにおいてさまざまな脆弱性が発見されているため、常に最新版を利用するように心がけ、今後も新たなSSHの脆弱性に関する情報があった場合には速やかに対応しましょう。)

目次

早速使ってみる

※Windows環境からしか使わない人は、「WindowsからSSH(slogin)をつかう」に飛んでしまっても良いでしょう。

SSHのコマンド名は基本的にr系コマンドの頭の`r'を`s'に換えたものです(ex. rsh->ssh, rlogin->slogin)。まずは、sloginコマンドを試してみましょう。

※もしかすると、sshがrshを上書きするような形でインストールされているかも知れません。その場合は、`rsh -V'を実行するとSSHのバージョンナンバーが表示されます。このときは、以下の説明のsshsloginなどをそれぞれ、rsh,rloginなどと読み変えてください。

[who@host1] % slogin host2.example.com
Host key not found from the list of known hosts.
Are you sure you want to continue connecting (yes/no)? yes
Host 'host2.example.com' added to the list of known hosts.
who@host2.example.com's password: [接続先ホストのUNIXパスワードを入力]
Last login: Mon Oct 19 23:33:40 1998 from host1.example.com
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.

[who@host2] %

接続先のホストhost2でsshd(SSHのDaemon)が正常に動いていれば上の実行例のようになると思います。host2にSSHを利用して接続するのが初めてなら、3行目のようにhost2のホスト公開鍵をknown hostsファイルに追加するかどうかの確認が行われます。ここで`yes'を選択すると、~/.ssh/known_hostsにホスト公開鍵が追加されます。

次にscpも試してみましょう。scpはその名の通り、rcpのSSH版です。

[who@host1] % scp host2.example.com:~/.cshrc ~/host2.cshrc
who@host2.example.com's password: [接続先ホストのUNIXパスワードを入力]
host2.cshrc           |        2 KB |   2.2 kB/s | ETA: 00:00:00 | 100%

[who@host1] %

先ほどsloginを実行したことにより、既に~/.ssh/known_hostsにhost2のホスト公開鍵が登録されているので、これを登録するかどうかは聞かれません。
scpは、rcpを利用する時に必要な.rhostsのような設定ファイルを特に用意する必要はありません(もちろん.rhosts(.shosts)を用意することでパスワードの入力を省くこともできます)。パスワードが必要な場合には入力を促されます。sshコマンドを利用する場合も同様です。これにより、rcprshよりも使いやすいコマンドになっていると思います。

SSHでは、パスワードの入力段階ですでに通信路の暗号化が行われていますので、UNIXパスワードを入力しても他人に盗聴される心配はありません。さらに以下に示すRSA公開鍵暗号による認証を用いることで、より安全性が向上します。

(SSHのパスワード認証を用いている場合、/etc/passwd(,master.password,shadowなどの暗号化されたパスワードが保存されている)ファイルの内容を解析されてパスワードが他人に知られた場合には、SSHを利用していても容易に侵入されてしまいます。RSA公開鍵暗号を用いていれば、利用者の秘密鍵と頭の中にしかないパスフレーズが揃わない限り侵入できません。(パスワード認証を禁止している必要があります。また仮に秘密鍵が洩れると、公開鍵とのペアで総当たり的にパスフレーズが解析されるおそれがあります)。またパスワード認証では、暗号化されているとは言え、通信路上を入力したパスワードが流れますが、RSA認証では入力したパスフレーズが通信路上を流れる事はありません。他にも利点は幾つか考えられますが、ここではあまりややこしい話は無しという事で。)

<目次に戻る>

RSA公開鍵暗号による認証

※鍵を作成する場合は必ずコンソールからマシンに直接ログインして行い、リモートからは行わないようにして下さい。(既にsloginを使用している場合はこの限りではありません。)

自分のRSA公開鍵(秘密鍵)を作成する(ssh-keygen)

ユーザはssh-keygenコマンドを実行することで、SSHで利用するRSA公開鍵(秘密鍵)を作成することができます。ssh-keygenコマンドにオプションをつけずに実行すると、`ユーザー名@ホスト名.ドメインネーム' がコメントとして付加されたRSA公開鍵が作成されますので、ホームをNFSで共有しているような環境では、`-C' オプションをつけて、メールアドレスなどを指定して実行するとよいでしょう(※あくまでもコメントなので、作成された公開鍵の最後のフィールドを直接編集して直しても構いません)。

[who@host1] % ssh-keygen -C who@example.com
Initializing random number generator...
Generating p: .............++ (distance 146)
Generating q: ...................................++ (distance 598)
Computing the keys...
Testing the keys...
Key generation complete.
Enter file in which to save the key (/home/who/.ssh/identity): [通常はこのままリターン]
Enter passphrase: [パスフレーズの入力]
Enter the same passphrase again: [パスフレーズの入力を繰り返す]
Your identification has been saved in /home/who/.ssh/identity.
Your public key is: [以下who@example.comまで本来は一行です]
1024 37 12083885849583839333032631314349311421230088647612975980098962
3471481811681864183528545641445869662210174575891946004404073642624654
6705871963744668789451857205146032387158954892384542915966997560893092
6651216403503325914185069187904735336675655780316382492146183872209580
5762180475954479553457247357496592407 who@example.com
Your public key has been saved in /home/who/.ssh/identity.pub
[who@host1] %

~/.ssh 以下に、identity,identity.pubの二つのファイルが生成されます。それぞれ、自分の秘密鍵と公開鍵です。パーミッションは、それぞれ600(-rw-------),644(-rw-r--r--)のはずです。ls -lでファイルモードを確認してください。

authorized_keysを用意する

~/.ssh/authorized_keys ファイルを用意します。このファイルには、信頼できる自分の公開鍵を追加していきます。とりあえず、ssh-keygenによって先ほど作成した自分の公開鍵identity.pubを追加しておきましょう。

[who@host1] % cd ~/.ssh
[who@host1] % touch authorized_keys
[who@host1] % chmod 600 authorized_keys
[who@host1] % cat identity.pub >> authorized_keys

また、接続先ホストの~/.ssh/authorized_keysにも接続元ホストにある自分の公開鍵を追加します。identiry.pubは他人に見られても問題ありませんので、ftpなどで接続先ホストにコピーして追加してください(もちろん、scpを使ってもOKです)。NFSでホームを共有しているような環境内部に限ってはこの操作は必要ありません。

~/.ssh/known_hostsファイルに接続先ホストのホスト公開鍵を登録する

RSA公開鍵暗号による認証を利用するには、以下の条件が必要です。

  1. 接続元ホストでRSA秘密鍵を作成してある(~/.ssh/identityが存在する)。
  2. 接続元ホストの~/.ssh/known_hostsファイルに接続先ホストのホスト公開鍵が登録されている。
  3. 接続先ホストの~/.ssh/authorized_keysファイルに接続元ホストにある自分の公開鍵(接続元ホストの~/.ssh/identity.pubの内容)が登録されている。

一度もSSHを使って接続した事のない接続先ホストにSSHによって接続すると、~/.ssh/known_hostsに相手のホスト公開鍵を登録するかどうかを訪ねられます。これに`yes'と答えれば登録されます。

試してみよう

先ほどと同じようにsloginを使ってみます。

[who@host1] % slogin host2.example.com
Enter passphrase for RSA key 'who@example.com': [ssh-keygenで入力したパスフレーズ]
Last login: Mon Oct 19 23:54:47 1998 from host1.example.com
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.

[who@host2] %

意外に簡単だと思いますが、いかがでしょうか?

<目次に戻る>

SSHの設定

SSHのデフォルト動作の設定は、~/.ssh/configファイルに記述します。設定項目ですが、UNIX MAGAZINE 1998年8月号 p57-58 に詳しい説明がありますので参照してみて下さい(手抜き :p)。

システム標準から特に変更する点はほとんどないと思いますが、以下の設定は調整してみると良いと思います。

私が使っている~/.ssh/config(全然参考になりません)。

<目次に戻る>

RhostsRSA認証

SSHでは、既存の`r'系コマンドと同じように.rhosts(または~/.shosts)ファイルを用意することで、パスワードを入力せずに接続することが可能です。通常のrhosts認証と異なるのは、接続元ホストをホスト公開鍵によって認証することで、ホストの改竄やなりすまし等を防ぐことが出来る点です。また`r'系コマンドを使わないというのであれば、設定は、~/.rhostsでなく~/.shostsで行った方が良いでしょう。また間違いのないように、~/ssh/configでRhostsAuthenticationは`no'に設定しておいた方が良いと思います。

RhostsRSA認証を利用するには、以下の条件が必要です。

最近(2001/1/12以降)の FreeBSD-stable は make world する際に ENABLE_SUID_SSH=true を定義しておかないと、RhostsRSAAuthentication が利用できなくなっています。考えてみると当たり前なのですが、RhostsRSAAuthentication では接続元のホスト秘密鍵を読みこむ必要があるため、ssh (not sshd) が setuid root されてないとダメなわけですな。
#いや、はまったはまった(笑

<目次に戻る>

WindowsからSSH(slogin)で接続する

以下の説明で`Windows'と表記した場合は、Microsoft Windows 95/NT4.0 以降を表します。(Tera Term Pro 2.3 for Windows 95/NTが動作するバージョンと考えて下さい)

ここでは、TeraTerm+TTSSHの組合せでWindows上からSSH(slogin)を利用する方法について説明します。

用意するもの

必須なもの

お好みで

※TTSSH 1.5.3以前のバージョンにはセキュリティ上の問題があります。必ず最新版(1.5.4以降)を使いましょう。

準備

まずふつうにTera Term Proのアーカイブを展開し、Setupを実行してインストールします。次にTTSSHのアーカイブを展開し、全てのファイルを Tera Term をインストールしたフォルダ(デフォルトのままであれば、C:\Program files\ttermpro)にコピーします。また、必要であればTeraTermPro日本語版も同様に展開し、上書きコピーします。

コピーを行う前に、必ず以下の点を確認して下さい。

エクスプローラを起動した後に、

TTSSHや、TeraTerm日本語版には拡張子 DLL のファイルが含まれているため、「全てのファイルを表示」にしておかないと、必要なファイルを全て選択できません。

もしくは、利用しているアーカイバが展開するファイルの出力先を選択できるのであれば、直接 TeraTerm をインストールしたフォルダを指定して展開を行った方が無難です。

展開の方法と、インストールの方法も書かないとダメかな…。

使ってみる

今コピーしたTTSSHのアイコン[IMAGE]TTSSH アイコンをダブルクリックして実行します。

[IMAGE]TTSSH 接続ダイアログ

オリジナルのTeraTermのダイアログとは違い、`Service'に`SSH'が追加されています。早速試してみたい所ですが、いくつか設定を済ませておきましょう。このダイアログを`Cancel'で閉じた後、メニューバーから「Setup->SSH」(「設定(S)->SSH」)を選択します。すると以下のようなダイアログが出ます。

[IMAGE]TTSSH Setup ダイアログ

ここの一番上の`Compression level:'の設定によって、通信データどの程度圧縮するかを選択する事ができますので、自分の環境に合わせて設定します(利用する回線が細く、マシンパワーがあるのなら高圧縮率にする等)。良く分からなければ、デフォルトのまま(無圧縮)でも構いません。

また、`SSH Known Hosts'の`Read/write file:' を指定します。マイドキュメントフォルダか、TeraTermをインストールしたフォルダの"ssh_known_hosts"というファイルを指定しておけば良いでしょう。このファイルを指定したおかないと、

[IMAGE]No read write known-hosts file ダイアログ

のようなエラーが出ることがありますので、必ず指定するようにして下さい。

設定が終ったら「OK」を押し、TeraTermのメニューから、「Setup->Save setup...」(「設定(S)->設定の保存(S)...」) を選び、"teraterm.ini" に今の設定を保存しておきましょう。

それでは、接続を試してみましょう。 「File->New Connection...」(「ファイル(F)->新規接続(N)...」) を選び、`Host:'に接続先ホスト名を入力し、`Service'にSSHを選択して「OK」ボタンを押します。

[IMAGE] TTSSH 新規接続ホストの確認ダイアログ

そのホストに初めて接続する場合には、以下のようなダイアログがでますので、`Add this...' をチェックして`Continue'を選択します。

[IMAGE] TTSSH 新規接続ホストの確認ダイアログ

このとき、以下のようなダイアログが現れる場合がありますが、あまり気にせず「OK」を押して先に進みます。(SSH Known Hostsの設定で、Read-only files:を指定し、そのファイルを作成しておくと(空でも良い)、以下のエラーは出なくなります。)

[IMAGE] TTSSH ssh_known_hosts が作成されていない場合のダイアログ

すると、下の図のようなダイアログが現れますので、`Use name:'と`Passphrase:'に接続先ホストのログインネームとパスワードを入力します。また、下の3つの選択肢は、一番上の`Use plain password to log in'を選んで「OK」ボタンを押して下さい。

[IMAGE]TTSSH 認証ダイアログ1

無事接続できれば、TeraTermのウィンドに接続先ホストのshellプロンプトが現れるでしょう。普通のtelnet接続と変わらないように思えますが、パスワード送信部分を含めてすでに暗号化が行われています。実際にSSHによる接続ができていればTeraTermのタイトルバーのアイコンが鍵のマーク[IMAGE]TTSSH 鍵のマークに変わり、環境変数SSH_CLIENTやSSH_TTYが定義されますので、確認してみましょう。

いつでもTTSSHを有効にしたい

通常では、ttssh.exeを用いて起動しないと、TTSSH の機能は有効になりません。ふつうにteraterm.exeを起動(TeraTerm のインストーラが作成するショートカットで起動)した状態でもTTSSHを有効にするには、環境変数 `TERATERM_EXTENSIONS'を`1'に設定します。

Windows95/98の場合は、c:\autoexec.bat に

set TERATERM_EXTENSIONS=1

を追加します。この設定はマシンを再起動した後から有効になります。

Windows ME の場合は、スタートメニュー->ファイル名を指定して実行->「名前(O):」に `msconfig' を指定して「OK」を押すと「システム環境ユーティリティ」が起動します。これの「環境」タブを選び、「編集(E)」->「新規(N)」で、

変数名:TERATERM_EXTENSIONS
変数の値:1

として新しい変数を登録します。その後、TERATERM_EXTENSIONS 左にあるチェックボックスにチェックを入れて、システム設定ユーティリティを「OK」で終了させます。ここで再起動を促され、再起動を行なった後からこの設定が有効になります。

WindowsNT4.0の場合には、コントロールパネル->システム->環境のユーザー 環境変数に、

変数:TERATERM_EXTENSIONS
値:1

を追加して下さい。

Windows2000の場合には、コントロールパネル->システム->詳細->環境変数->"だれそれ"のユーザー環境変数(U)に

変数:TERATERM_EXTENSIONS
値:1

を追加して下さい。この設定は適用後すぐに有効になります。

別に常に有効にする必要がなければ、ttssh.exeのショートカットをスタートメニューに登録しておけばよいでしょう。この場合、ノーマルのTeraTermが動いている時に、TTSSHを組み込んだTeraTermを動かす事が出来ない点に気をつけて下さい。ttssh.exeを実行する前に、他に普通のTeraTermが動いていないか確認しましょう(これは結構面倒なので、常時TTSSHを有効にしてしまう事をお勧めします)。

<目次に戻る>

WindowsからRSA公開鍵暗号による認証を利用する

Windows上のRSA秘密鍵の管理にはくれぐれも気を使って下さい。特に複数の人が使う環境で、かつNTFS以外のファイルオーナーの概念がないファイルシステム(秘密鍵が自分以外のユーザから参照できてしまうシステム)を利用している場合には、逆にRSA認証は利用しないほうが良いと思います。

用意するもの

PortForwarderは、後の節で説明するSSHのPort Forwarding機能を簡単に利用できるソフトウェアです。Release 1.1.0以降では、PF-keygenというRSA公開鍵(秘密鍵)を作成するためのコマンドが含まれています。ここではPF-keygenを利用してWindows上での鍵の作成を行ないます。

PortForwarderのダウンロードページから取得した、Windows用の実行ファイルのアーカイブを、適当なディレクトリに展開します。ここでは、`C:\Program Files\PortForwarder'に展開したものとします。

Windows上でのRSA公開鍵(秘密鍵)の生成

PF-keygen[IMAGE]PF-keygen アイコンを実行し、Windows 上でのRSA公開鍵(秘密鍵)を生成します。

`Generate new key'を選び、`Identity file:'は、TeraTermをインストールしたフォルダまたは"マイ ドキュメント"フォルダに、`identity'という名前で鍵を生成するようにします。

[IMAGE] PF-keygen 起動後のダイアログ

「OK」ボタンを押すと時間がかかる場合がある旨のメッセージが表示さます。

[IMAGE] PF-keygen This may take a log time.

更に「OK」ボタンを押すと、パスフレーズの入力を求められます。

[IMAGE] PF-keygen パスフレーズの入力

パスフレーズを入力後「OK」ボタンを押すと、同じパスフレーズの入力を促すダイアログが出るので、これにも同じく入力して「OK」ボタンを押します。

[IMAGE] PF-keygen パスフレーズの再入力

2回入力したパスフレーズが異なっていた場合以下のエラーダイアログが出るので、再度正しく入力し直します。

[IMAGE] PF-keygen パスフレーズが異なる場合

2回入力したパスフレーズが同じであれば、今作っている鍵に対するコメントを入力するダイアログが出ます。自分のメールアドレスなどを入れておきます。なお、日本語(2byte文字)は使わない方が良いでしょう(多分)。

[IMAGE] PF-keygen コメントの入力

コメント入力後、「OK」ボタンを押すと、秘密鍵を作成した旨のダイアログと公開鍵を作成した旨のダイアログが表示されます。

[IMAGE] PF-keygen コメントの入力

[IMAGE] PF-keygen コメントの入力

以上の操作でRSA公開鍵、秘密鍵のペアが作成できました。最初に設定した場所に"identity"及び"identity.pub"ファイルが作成されているか、確認しておきましょう。そして、公開鍵"identity.pub"ファイルの内容を、接続先ホストの~/.ssh/authorized_keysに追加しておきます。

同一ホスト名(IP)で複数の環境を持つ場合

マルチブートなどを利用して同一ホスト名、同一IPで複数の環境を使い分けている場合は、どれかの環境で作成したRSA鍵ファイル"identity","identity.pub"をほかの環境にコピーして使うと良いでしょう。もちろん別の鍵を作成してもかまいませんが、その場合は公開鍵のコメント部を環境別で変えておくと区別が付き易くなります。(Unix系のOSの場合、ホスト鍵もそれぞれの環境で同じものを利用した方が無難です)

接続先ホストのホスト公開鍵をssh_known_hostsファイルに追加する

TTSSHでRSA公開鍵暗号を使ってほかのホストに接続するには、UNIXでSSHを利用する場合と同様の条件が必要です。

  1. 接続元ホストでRSA秘密鍵を作成してある("identity"ファイル)。
  2. 接続元ホストのTeraTermをインストールしたフォルダにあるssh_known_hostsファイル(もしくは、known_hostsファイル)に接続先ホストのホスト公開鍵が登録されている。
  3. 接続先ホストの~/.ssh/authorized_keysファイルに接続元ホストにある自分の公開鍵が登録されている。

ttssh.exeを実行して接続先ホストを入力、SSHを選択して接続を行うと、初めての接続先の場合は、以下のようなダイアログがでますので、`Add this...' をチェックして「Continue」を選択します。

[IMAGE] TTSSH 新規接続ホストの確認ダイアログ

これで"ssh_known_hosts"ファイルに接続先ホストのホスト公開鍵が追加されます。

繋いでみる

以上で準備は整いました。続けて実際に接続してみます。

[IMAGE]TTSSH 認証ダイアログ2

`Use RSA Key to log in:' を選択し、Passphraseにはssh-keygenで入力したパスフレーズを入力すると、RSA公開鍵暗号を用いてログインできます。

RSA秘密鍵ファイルidentityの置き場所を変更する。

TTSSH はデフォルトで、`マイ ドキュメント'フォルダ->TeraTermをインストールしたフォルダの順に"identity"ファイルを探すようです。マルチユーザ環境で利用している場合などは、このファイルの置き場所を変更したい場合があると思います。TeraTermのメニューバーから、「Setup->SSH Authentication」(「設定(S)->SSH Authentication」)を選択すると以下のようなダイアログが現れます。

[IMAGE]TTSSH Authentication Setupダイアログ

ここで、デフォルトのユーザー名、認証方式、"identity"ファイルの置き場を設定することができます。設定が終わったら、「Setup->Save Setup...」(「設定(S)->設定の保存(S)...」)で設定内容を保存しておきましょう。

<目次に戻る>

WindowsでSSHのPort Forwardingを使う

Port Forwarding 機能は、接続先ホストのあるポートと、接続元ホストのあるポートとをSSHによって暗号化された経路で結びつけるもので、接続元ホストのクライアントアプリケーションに特別な変更を加える事無く、安全な経路上でサービスを利用する事ができるようになります。例えば、接続先ホストの110番ポート(POPサーバが通常利用しているポート番号)と接続元ホストの10110番ポートをPort Forwardingによって結びつけた場合、接続元ホストにおけるメールクライアントのPOPの設定を、接続元ホストの10110番ポートを利用するようにすれば、メールクライアントからはあたかも接続先ホストの110番ポートにアクセスしているように見えるため、通常通りのメールの読み込みが可能であり、かつその通信経路は暗号化されているため、メールの内容が漏洩したりする心配がなくなります。

それでは、実際にPort Forwardingを行うための設定を行ってみましょう。ここではWindows上のクライアントから、安全にメールを送受信するために、メールサーバの25番ポート(SMTP)および110番ポート(POP)をPort Forwardingによってローカルホストに転送するための設定例を示します。

この設定例の通りに動作するための条件は、

です。

TTSSHにおけるPort Forwardingの設定

TTSSHは通常のSSHのターミナルソフトといった機能の他に、PortForwardingを行う機能ももっています。PortForwardingのための設定は以下のように行ないます。

TTSSHを起動して、メニューバーから「Setup->SSH Forwarding」(「設定->SSH Forwarding」)を選択します。すると以下のような`TTSSH: Forwarding Setup'ダイアログが立ち上がりますので、「Add」ボタンを押します。

[IMAGE]TTSSH:Forwarding Setupダイアログ

最初は、メール送信用のポートフォワーディングの設定を行います。`Forward local port'を選択し、右のセレクタブルリストには"smtp"を選びます。`to remote machine'には、"送信メールサーバ名"を入力し、`port'に"smtp"を選びます。できたら「OK」を押し、先ほどの画面に戻ります。

[IMAGE]TTSSH:Port Forwarding の設定(smtp)

再び「Add」ボタンを押し、次はメール受信用のポートフォワーディングの設定を行います。`Forward local port'を選択し、右のセレクタブルリストには"pop3"を選びます。`to remote machine'には、"受信メールサーバ名"を入力し、`port'に"pop3"を選びます。できたら「OK」を押し、先ほどの画面に戻ります。

[IMAGE]TTSSH:Port Forwarding の設定(pop3)

メール送信、受信用双方の設定ができればこのようになると思います。

[IMAGE]TTSSH:Fowerding Setupダイアログ(設定後)

上のダイアログを「OK」で抜けた後、今行った設定を保存します。メニューバーから「Setup->Save Setup...」(「設定(S)->設定の保存(S)」)を選択し設定を保存しますが、ここではデフォルトの"teraterm.ini"ではなく、ファイル名に"mail_port_forwarding.ini"を指定して、保存しました。

[IMAGE]TeraTerm:設定の保存

次に、ポートフォワーディング起動用のショートカットを作成します(ショートカットの作り方がわからない人向けの説明(およそ65KB/28.8Kモデムで約20秒)。ここでは、デスクトップにttssh.exeのショートカットを作成し、名前を"Port Forwarding for Mail"としました。

作成したショートカットのプロパティを開き(ショートカットのアイコンを右クリック)、

[IMAGE]プロパティ1

`リンク先(T):'の部分にある ttssh.exe のパス名に続いて、

[IMAGE]プロパティ2

一つスペースをおいてから、以下のオプションを入力して下さい。(複数行にまたがって見えるかも知れませんが、一行です)。

/F=mail_port_forwarding.ini /ssh mail.example.com:22

"/F=先ほど保存した設定ファイル名"、 "/ssh"、 "メールサーバ名:sshdのポート番号(通常は22)" の順です。"/F="オプションは、TTSSH(TeraTerm)の起動時に読み込まれる設定ファイルを指定するためのオプションで、"/ssh"オプションは、SSHによる接続を行うためのオプションです。

結果的に、`リンク先(T):'は以下のようになります(一行です)。 "C:\program files\TTERMPRO\ttssh.exe" /F=mail_port_forwarding.ini /ssh mail.example.com:22

できたら「OK」ボタンを押してプロパティを閉じます。以上で準備は終りです。

それでは作成したショートカットをダブルクリックして、TTSSHを起動して下さい。すると、見覚えのある認証ダイアログが現れます。RSA認証を使う設定を行っていれば`Use RSA key ...'を選択し、そうでなければ`Use plain ...'を選択してメールサーバにログインして下さい。

[IMAGE]認証ダイアログ(Port Forwarding)

一見、いつもと変わらずログインできたと思いますが、この状態ですでにPort Forwardingの機能は動作しています(特別エラーメッセージなどが出なければ)。この起動したTeraTermはこの後、メールのやりとりをしている間は立ち上げたままにしておいて下さい。じゃまであれば最小化しておきましょう。

PortForwarderにおけるPort Forwardingの設定

WindowsからRSA公開鍵暗号による認証を利用するの項でも取り上げた、PortForwarderを用いる方法です。PortForwarderの操作方法についてはシンプルかつ迷いようがないので、とくに説明しません。

PortForwarderの設定ファイルは、以下のソフトを利用する事で簡単に作成できます。

この例の設定は簡単ですので、メモ帳等でさくさく作ってみましょう。前項のTTSSHを用いたPortFowardingと同じ事を行なうための設定は以下のようになります。


Host Mail
 HostName mail.example.com
 User who
 LocalForward 25 mail.example.com:25
 LocalForward 110 mail.example.com:110

この様な内容を"config.txt"という名前でPortForwarderを展開したフォルダに保存します。これまでにRSA認証に必要な設定を行なっていれば、以下のように秘密鍵ファイル"identity"を指定する事で、RSA認証を利用できます(PortForwarder Config Editorを利用して設定ファイルを作成している場合には、この設定に関する部分がないので、設定ファイルを直接編集して加えます)。


IdentityFile c:/Program Files/TTERMPRO/identity

または、PortForwarderを展開したフォルダに、RSA秘密鍵ファイル"identity"を置くだけでもOKです。

後はPortForwarderを起動し、`Config file:'に先ほど作った"config.txt"を指定します。`Host:'には"Mail"を指定して「Connect」。はじめて接続するホストの場合は、接続を続けるかを問うダイアログが出ます。続けてパスワード入力(もしくはパスフレーズの入力)が完了すると、Port Forwardingが利用できるようになります。

さすがにPortForwarderは名前の通りPort Forwardingに特化した作りで、その目的のためには非常に使い勝手良く作られています。今までPort Forwardingの機能のためだけに、TTSSHを利用していた方は、PortForwarderも試してみてはいかがでしょうか。(※ただし、PortForwarderは通信データの圧縮に対応していないため、この機能が必要な場合は、TTSSHを利用する必要があります。)

メールクライアントの設定

次にメールクライアントの設定を行います。メールクライアントは星の数ほど(?)あるのでそのすべての設定を網羅することはできません。以下では、Netscape Messenger (Netscape Communicator 4.7x日本語版のもの)とOutlookExpress5.5における設定方法について説明します。

ポイントは、送信メールサーバ(SMTPサーバ)と、受信メールサーバ(POPサーバ)を"localhost"に設定することです。

Netscape Messengerの場合

  1. Netscape Messengerを起動し、「編集(E)->設定(E)」を開きます。

    [IMAGE]Netscape 設定ダイアログ

  2. 左のメニューから「個人情報」を選択し設定した後、 「メールサーバ」の設定を開きます。

    [IMAGE]Netscape メールサーバの設定1

  3. 通常、"mail.example.com"をメールサーバとしてメールのやりとりをする場合は上の図のような設定ですが、このメールのやりとりに必要なポートは接続元ホスト(localhost)に繋いでありますので、"localhost"に設定するようにします。
    まず、`受信メールサーバ'の「編集(E)」ボタンを押すと`メールサーバのプロパティ'が開くので、`サーバ名(S):'を"localhost"に、「ユーザ名(U)」をメールサーバにおけるユーザ名(ログインネーム)に設定します。

    [IMAGE]Netscape メールサーバのプロパティ

  4. `メールサーバのプロパティ'を閉じたら、`送信メール (SMTP)サーバ(O):'も"localhost"に設定します。

    [IMAGE]Netscape メールサーバの設定2

  5. 以上で設定は終わりです。
    新規メールの取り込みを行なおうとすると、

    [IMAGE]Netscape パスワードの入力

    とパスワードの入力を促されますので、メールサーバにおけるユーザ名のパスワードを入力します。新着メールは取り込めたでしょうか?

    自分宛にメールを送信して、正しくメールの送受信が行なえているか確かめてみましょう。

  6. メールのやりとりが終ったら、Port Forwardingのために立ち上げたTeraTerm(またはPortForwarder)は終了させましょう。

Outlook Expressの場合

  1. Outlook Expressを起動し、「ツール(T)->アカウント(A)」を開き、「メール」タブを選びます。

    [IMAGE] Outlook Express インターネットアカウントの設定

  2. 設定を行なうメールアカウントのプロパティを開きます。

    [IMAGE] Outlook Express メールアカウントのプロパティ「全般」

  3. 「サーバー」タブを選びます。

    [IMAGE] Outlook Express メールアカウントのプロパティ「サーバー」

  4. `サーバー情報'の`受信メール(POP3)(I):'、`送信メール(SMTP)(U):'をそれぞれ"localhost"に設定します。

    [IMAGE] Outlook Express メールアカウントのプロパティ「サーバー」の設定

  5. 以上で設定は終わりです。
    新規メールの取り込みを行なおうとすると、

    [IMAGE] Outlook Express パスワードの入力

    とパスワードの入力を促されますので、メールサーバにおけるユーザ名のパスワードを入力します。新着メールは取り込めたでしょうか?

    自分宛にメールを送信して、正しくメールの送受信が行なえているか確かめてみましょう。

  6. メールのやりとりが終ったら、Port Forwardingのために立ち上げたTeraTerm(PortForwarder)は終了させましょう。

<目次に戻る>

このページの更新履歴

<目次に戻る>

終わりに

<目次に戻る>


書かないけど (書いてるな…)

文責: TANNO Hajime (one@netlab.is.tsukuba.ac.jp)