1. はじめに *
2. SSH の概要 *
2.1. SSHの機能 *
2.2. SSHのバージョン *
3. SSHが使っている暗号技術 *
3.1. 暗号化方式 *
3.2. 共有鍵暗号方式 *
3.3. 公開鍵暗号方式 *
4. SSH の行なう認証 *
4.1. サーバホスト認証 *
4.2. ユーザ認証 *
5. ポートフォワーディング *
5.1. X11フォワーディング *
6. SSHの使い方 *
6.1. Windowsでの使い方 *
7. SSH のインストールと設定 *
7.1. Windows へのインストレーション *
8. まとめ *
謝辞 *
参考文献 *
高エネルギー加速器研究機構 (以下KEKと略す) の計算機システムおよびネットワーク環境のセキュリティ対策を検討するなかで SSH [e1][1][e2][n1] の導入を検討してきた.
我々が当初 SSH に注目した理由は2つある. 第1には, 計算機の利用においてネットワーク経由でリモートのホストにアクセスすることは欠かせない. しかし,その際に入力するパスワードをネットワーク上で保護する機能は現状では十分でない. SSH を利用すれば, このパスワードが暗号化されて通信されるので保護できる.
第2には, KEK の計算機セキュリティ対策として, ネットワークの接続制御クラス分けを行なったことに関連している[2] [3] [4]. 大部分の計算機は, 外部へのアクセスはできるが, 外部からのアクセスは抑制される「片方向クラス」のホストになった*1. この計算機では, 外部の計算機に telnet でログインして, その計算機で xterm などの X クライアントを実行して, 自分の端末の X サーバに表示させることができない. ここで telnet の代わりに SSH を使えば, 「X11のフォワーディング機能」というものを利用できて, Xサーバに表示することができる.
以上が当初の動機であるが, SSH には強力な認証機能と通信の暗号化の機能があり, ホストのセキュリティの強化を検討[5]する上でも重要である. ネットワークと計算機を利用する上で安全性を確保するために, SSH を利用することが必須となりつつある.
本稿では, まず, SSH の使っている2つの技術である, 暗号および認証技術, それとポートフォワーディング技術を説明する. つぎに, SSH の使い方を説明する. すぐに SSH を使いたい方は, 最初に第6章を読むと良い. 最後に Windows および UNIX*2 へのインストレーションについて説明する.
なお, 本稿で説明している内容は, ライセンスおよびセキュリティポリシーに関することの2点についてのみ KEK 特有の部分がある. その他の部分については一般的に適用可能である.
SSH はリモートのホストにアクセスする際の, セキュリティを強化するためのツールである.
リモートログインは, 通常 telnet や ftp, あるいは rlogin や rsh を使って行なう. 計算機のユーザは, SSH のインストールされている計算機であれば, telnet の代わりに slogin あるいは ssh を, rcp の代わりに scp を, ftp の代わりに sftp を使えば, 従来のコマンドとほぼ同様のことができる.
Telnet などは, 接続先のホストの認証は行なわず, ユーザ認証だけを行なう. 端末から入力したパスワードの文字列はそのままネットワーク経由で接続先のホストに送られてユーザ認証がなされる. 一方 SSH は暗号システムを使ってホスト認証およびユーザ認証を行ない, またユーザのパスワードを含めて, すべてのデータの通信を暗号化して行なう. これにより通信が傍受されても, ユーザのパスワードが守られる. TCP/IP の接続に対しても強力な認証機構があるので, IP アドレス偽装, IP ソースルーチング, DNS 偽装, 途中のホストによるデータの操作, といった不正アクセスの攻撃に強い.
X ウィンドウシステムの通信はセキュリティ機能が非常に弱い. SSH には, X の通信を傍受や認証の偽装から守るために X のフォワーディング機能を備えている. この機能は, SSHによる接続時には自動的に設定されるので, ユーザが何も設定をしなくとも利用できる.
X のフォワーディング機能は更に, セキュリティ対策として外部からのアクセスを制限している LAN に xterm, kterm などの X クライアントを通過させるために利用することができる. これは KEK の片方向クラスのホストに該当する.
SSH のサーバあるいはクライアントに proxy(中継)サーバを作成して, SSH の通信を利用して proxy との間の通信を暗号化する「ポートフォワーディング機能」が利用できる. これは, その都度ユーザが設定して利用する機能であるが, ftp や pop などのセキュアでない通信のときに利用することにより, セキュリティを高めることができる. これらのフォワーディング機能は, ファイァウオールをまたがっての通信にも利用可能である.
SSH には, SSH Communication Security社 [e3] が公開しているフリーの ssh-1.2.27 ( 以下 SSH1 と呼ぶ ) と ssh-2.x ( 以下 SSH2 と呼ぶ )*3, それを F-Secure Corporation ( 旧 Data Fellow 社 ) [e4] が製品化している SSH2 がある. SSH1 には UNIX 用のサーバおよびクライアントがあり, SSH2 には UNIX 用のサーバおよびクライアント, Windows 用のクライアント, Macintosh 用のクライアントがある. SSH1 と SSH2 は仕様が異なり互換性はない [e5] が, SSH2 のインストール時に ssh-1.3.x を併せてインストールすれば, 自動的にバージョンを合わせて通信する機能が利用できて相互乗り入れが可能になる.
その他フリーのソフトウエアに, Windows 用の SSH1 クライアント[e6], Macintosh 用のクライアント[e7]*4などがある.
SSHのバージョンやライセンスについてはWebページ