安全な通信方式での接続方法(その1)
-- PuTTY で SSH 接続 --

赤坂 浩一 浅岡 香枝 平野 彰雄
(学術情報メディアセンターコンピューティング掛)

※ 本稿は,京都大学学術情報メディアセンター全国共同利用版 広報, Vol.3, No.2, pp.77-86 (2004.03) の解説記事に,KUINS-IIIから学外のSSH サーバへの接続について加筆を行ったものです.


1. はじめに

従来,リモート計算機への接続の際には, telnet や ftp を使うことが主でした.しかし,telnetやftpでは, ユーザ認証を行なうために入力したIDやパスワードが, そのまま平文(暗号化されない文字列)としてネットワーク上に流れていくため, 途中の経路でIDやパスワードを盗聴することが容易になります.

盗聴されたIDやパスワードが悪用されると, 計り知れない被害が発生するかも知れませんので, 近年は,telnetやftpによる接続を禁止し, 暗号技術を用いた安全な通信方式であるSSH(Secure SHell) による接続に移り変わってきています.

SSHによる接続を行なうためには,お使いのマシン(UNIX・Windows・Macintosh )にSSHクライアントプログラムを用意する必要があります. UNIX系OSの場合,OpenBSDやFreeBSD,Linuxの様々なディストリビューションには, 標準でSSHクライアントプログラムの OpenSSH が用意され, Macintoshの場合,最新のMacOS Xには,標準で OpenSSH が用意されていますので, これらのマシンをお使いの方は,そのままSSHによる接続が行なえます.

Windowsの場合,95, 98, Me, NT, 2000, XPのどれでも, 各自でSSHクライアントプログラムを用意する必要があり, MacintoshのMacOS Xより前のOS,UNIX系OSのSolarisも, 各自でSSHクライアントプログラムを用意する必要があります. 今回は,利用者の多くが使用されているWindowsマシンに対応した SSHクライアントプログラムで端末エミュレータの機能を持つ PuTTY を紹介します.

なお,SSHには,バージョン1とバージョン2の二種類が存在しますが, バージョン1にはセキュリティ上の問題が指摘されていますので, 必ずバージョン2のSSHを利用するようにしてください.


2. PuTTYとは

これまで紹介した Windows マシンに対応した SSH クライアントプログラムとして, SSH Communications Security社 SSH Secure Shell for Workstations やフリーソフトウェアの TeraTermPro に SSH クライアント機能を拡張する TTSSH などがありました.

有料のソフトウェアである SSH Secure Shell for Workstations は, 英語版は非商用での利用に限り無償で利用できますが, 日本語版は正規品を購入するしかありませんでした. 一方,フリーソフトウェアの TeraTermPro+TTSSH は, 日本語環境での使用も満足できますが, バージョン2のSSHに対応しておらず, セキュリティの面で少し不安が残ります.

今回,紹介するSimon Tatham氏らによって開発されたPuTTYは, MITライセンスで商用・非商用を問わずどなたでも無料で使用できる フリーソフトウェアであり,バージョン2のSSHにも対応しており, また,Hideki EIRAKU氏が, PuTTYで日本語を扱えるようにするパッチを作成し,公開されています.

それでは,PuTTYの入手とWindowsマシンへのインストール, リモートの計算機にログインするための設定について紹介します.


3. PuTTYの入手とインストール方法

PuTTYの入手は,PuTTYのホームページから行ないます. URLは,以下の通りです.

http://www.chiark.greenend.org.uk/~sgtatham/putty/

PuTTYのダウンロードページには, バイナリ形式のプログラムやソースコードなどが公開されていますが, インストーラー付きの実行ファイルを入手してください. 本稿執筆中(2004年6月15日時点)では, putty-0.54-installer.exe が最新版となっていますが, 各自がダウンロードするときには,なるべく最新版を入手するようにしてください. ダウンロードしたインストーラー付きファイルを実行 (マウスでダブルクリック)するとインストールプログラムが起動しますので, Next をクリックしてインストールを開始します.

まず始めに,PuTTYのインストール先を尋ねてきます. 差し支えなければ,デフォルトのインストール先である

C:\Program Files\PuTTY

にしておきましょう.Next をクリックして進みます.

次に,スタートメニューに登録するときの名前を入力します. これもそのまま先に進んでかまいません. インストーラーが日本語対応していないので, 日本語のスタートメニューがあった場合文字化けして表示されることもありますが, 登録に支障はありませんので,Next をクリックして進みます.

次のステップでは,スタートメニューに登録するか, デスクトップにショートカットを作るか, PPK という拡張子を持つファイルを Pageant というプログラムに関連づけるか,などを指定します. デフォルトでは,全てにチェックが付いています. ここも変更せず,Next をクリックして進みます. 図1のように,インストール先やオプションの確認を行なったら, {\tt\fbox {Install} }をクリックし,必要なファイルのコピーを開始します.

インストールが終了したことを知らせるウィンドウが表示されたら, Finish をクリックして完了です.PuTTYがインストールできました.


図1: インストール先やオプションの確認


4. Putty の日本語対応化

続いて,PuTTYで日本語を扱えるようにするパッチを次のURLから入手します.

http://hp.vector.co.jp/authors/VA024651/download.html

上記のホームページでは,日本語を扱えるようにするパッチを適用した実行ファイルと 日本語メニュー用ファイルとマニュアルファイルの三つのファイルが, ZIP形式の圧縮ファイルで公開されており, ダウンロードするファイルは,executable files (実行ファイル)にリンクされているZIP形式の圧縮ファイルの puttykjbin.zip です. 本稿執筆中(2004年6月15日時点)では,PuTTY version 0.54 にパッチを適用したものが最新版のようです.

Windows Me,XPをお使いの場合は, 標準でZIP形式のファイルを解凍(展開)する機能がありますが, それ以外のWindows 95,98,NT,2000の場合は, あらかじめ解凍ツールを用意しておいてください.

ZIP形式の圧縮ファイル (puttykjbin.zip) を解凍(展開)すると, 図2のように,puttykjbin という名前のフォルダの中に, puttyjp.exe, puttyjp.lng, readme2.html の三つのファイルに展開されます.


図2:日本語パッチが適用されたファイル

上記の三つのファイルは,PuTTYをインストールしたフォルダ

C:\Program Files\PuTTY

にコピーします.

既に作成されているデスクトップのPuTTYアイコンやスタートメニューに登録されている PuTTYのプログラムのプロパティのリンク先を 図3 のように編集して, 日本語パッチの適用されている実行ファイル (puttyjp.exe) を起動するように変更しておきます.


図3: リンク先の変更

リンク先のプログラムが,次のように

C:\Program Files\PuTTY\putty.exe

から

C:\Program Files\PuTTY\puttyjp.exe

に変更しています.


5. PuTTYの使い方

デスクトップ上にあるPuTTYのアイコンをマウスでダブルクリックすると,
図4のようにPuTTYの設定のウィンドウが起動します.

例えば,メディアセンター北館に設置のスーパーコンピュータ(以下,HPC2500) にログインする場合は, PuTTYセッションの基本オプションで『ホスト名(またはIPアドレス)』の欄に, ホスト名(FQDN)の hpc.kudpc.kyoto-u.ac.jp を書き, その下の<『プロトコル』からSSHをチェックし, 開く をクリックします.


図4: PuTTYの設定

初めて接続するホストの場合には,図5 のように接続するホストを信頼するかを確認するウィンドウが表示されます. はい をクリックすると,そのホストの鍵を保存しておき, 以後の接続時には保存している鍵で接続するホストを検証します.

接続するホストの検証が終わると, 図6 のようなPuTTYのウィンドウが表示されます. login as: のプロンプトに対して,HPC2500のアカウント(user-id)をタイプし, Enter キーを押します.

次に,パスワードを尋ねるプロンプトに対して, 正しいパスワードをタイプしてください.

利用者認証が終わると,ログインが完了します. HPC2500をログアウトするとPuTTYのウィンドウも閉じます.

  
図5: 接続するホストの確実性の確認 図6: PuTTYのウィンドウ


5.1 セッションの保存

毎回,ホスト名を書き,プロトコルを選択したりするのは手間なので, 何度も接続するホストは, そのセッションに名前を付けて保存しておくのが良いでしょう. 図7 のように『保存されたセッション』 の欄に付けたい名前を書き,保存 をクリックします. この例では,ホスト名と同じ hpc.kudpc.kyoto-u.ac.jp としていますが,自分で覚えやすい名前を付けるのが良いでしょう. これで,保存しておいたセッションを利用した接続が可能となります.


図7: セッションの保存

名前を付けて保存したセッション設定を 図8 のように選択してマウスでダブルクリックしたり, 開く をクリックすると,先ほどと同じように 図6 のPuTTYのウィンドウが表示されます.


図8: 保存したセッションの利用


5.2 PuTTYの詳細な設定

PuTTYを快適に使うために,設定をカスタマイズしてみましょう. PuTTYの設定は,セッション・端末・ウィンドウ・接続 といったカテゴリに分れて管理されています. ここでは,ウィンドウ接続の配下にある SSHの箇所に手を加えてみます.

ウィンドウでは, PuTTYのウィンドウを管理するオプションの設定を行なうことができます. ウィンドウに関するオプションは, このウィンドウの配下に外観・振る舞い・変換・選択・色 に細分化され,設定するようになっています.

まず,図9ウィンドウの箇所では, 『ウィンドウのサイズの指定』の枠での指定や 『ウィンドウ内のスクロールバックの管理』の枠で スクロールバックの行数を指定することができます. 実際に指定する値は,各自のお好みで指定して構いません.


図9: 『ウィンドウ』での設定

図10外観の箇所では, 『端末ウィンドウ内で使われるフォントの設定』の枠で Change をマウスでクリックすると, フォントのウィンドウが開きますので, 好みに合わせてフォントを選択し,OK をクリックしてください. この例では,Terminal,10-point から少しサイズを大きくし, Terminal,14-point に変更してみました.


図10: 『外観』での設定

図11接続の箇所では, 接続を管理するオプションの設定が行なえます. 『サーバに送られるデータ』の枠で自動ログインのユーザ名の欄に, HPC2500のアカウント(user-id)を記入しておくと, 図12 のPuTTYのウィンドウでlogin as: のプロンプトに応答する必要がなくなります.

図12SSHの箇所では,SSH接続を管理する オプションの設定が行なえます.

『プロトコルオプション』の枠で圧縮を有効にするをチェックすると, 暗号化通信を圧縮します. 優先するSSHプロトコルバージョンには2もしくは 2 onlyをチェックするのが良いでしょう.

  
図11: 『接続』での設定 図12: 『SSH』での設定

図13トンネルの箇所では, SSHトンネリングを管理するオプションの設定が行なえます. 『X11フォワーディング』の枠でX11フォワーディングを有効にする をチェックしておけば,安全な通信経路でX Window Systemを利用することができます.

また,『ポートフォワーディング』の枠では, リモートマシンとローカルマシンの通信をポートごとに 安全な通信経路で行なうように設定することができます. なお,この例では,トンネルの箇所の設定は変更していません.

カスタマイズした設定は,忘れないうちに保存しておきましょう. セッションのカテゴリに移動し, 図14のように, 『保存されたセッション』の欄に先ほど付けた名前を書き, 保存 をクリックします.

  
図13: 『トンネル』での設定 図14: カスタマイズした設定の保存


6. socks を利用した学外のSSH サーバとの接続

現在,KUINS-III を利用している場合, 学外のSSH サーバと直接接続することはできません. しかし,KUINS で運用している socks-proxy サーバを経由することで, PuTTY を利用して,学外と接続することができます. ここで,設定方法を紹介します.

まず,図15 にある接続の箇所にある proxy を選択します. そこで,『Proxy 必須設定項目』 の各欄について,以下の通りに指定します.

Proxy のタイプ SOCKS
Proxy ホスト socks-proxy.kuins.kyoto-u.ac.jp
ポート 1080

次に,『様々なproxy設定』で, バージョン4 を選択します.

設定が完了しましたら, 「5. PuTTYの使い方」に戻って,順次に設定を行えば, 学外のSSHサーバとの接続が可能になります.


図15: proxy(socks) の設定


7. おわりに

以上,PuTTYの入手・インストールと簡単な使い方を紹介しました.

この他にも,公開鍵認証に必要な鍵ペア(公開鍵, 秘密鍵)を作成するツール(PuTTYgen)や公開鍵認証で リモートホストにログインする場合のパスフレーズの入力を自動化するツール (Pageant)なども用意されていますが,今回は,説明を省きます.

また,安全なファイル転送のプロトコルとして, SFTP(SSH FileTransferProtocol)SCP(Secure Copy Protocol) の二種類があり,PuTTY では, pscp コマンドや psftp コマンドが用意されています. しかし,どちらもコマンドラインから利用するコマンドなので, 使いこなすには,ある程度の慣れが必要となります.

SFTP と SCP によるファイル転送を GUI ベースで実行可能なアプリケーションの一つに WinSCP がありますが, こちらは次号の KUINS ニュースで利用方法について紹介します.