図 1 端末工ミュレータの ア、 = リ ~ (b) 20 、海き : イノをジど三 プノ : 、 「ヴゾドう朝一編照旦 ) オプション ( 旦 ) 罍物もあります ) 。フロントパネルては、 閉じる ( C A は + F4 から 4 番目の個人アプリケーション用のサプ ' をクリックして実行できます信判可 { 8 ー 1 } ェニュ ワークスペースメニューを使うときは、そのメニュー項目のプロ メニューから、、立工ミュレーダ ' を曲尺します。 以上の 2 つわ番てっとり早し防法てすか、現在すでに立蘇工ミ 今回は、その起動から終了までに重要なかかわりのあ るシェルを中心に、使用上のポイントや注意点を含めて 説明します。なお、以降では端末工ミュレータ内の ( デ フォルトでは ) 四角い箱をカーソル、マウスで動くマウス カーソルをポインタと呼びます。 端末工ミュレータの起動 通常、端末工ミュレータは次のような方法て起動しま 起動済みの端末工ミュレータから起動庁る。 ーから選ぶ。 アプリケーション・マネージャを使う。 ・フロントパネルを使う。 す。 ・ワークスペース・メニューの、、プログラム " サプメニ UNIX MAGAZINE 1998.8 を尺します。 プログラムで得られるメニューから、、端末工ミュレータ " スペース・メニュ ーを使うときは、そのメニュー項目の レータ " をクリックして実行できます ( 図 l-a)o ワーク の、、個人アプリケーション " のサプパネルで、、端末工ミュ フロントパネルでは、 ( デフォルトでは ) 左から 4 番目 UN Ⅸへの招待 現在すでに端末工ミュレータを使っている場合は、そ のウインドウの、、ウインドウ " メニューから、、新規 " を選 択するか ( 図 1 ー b ) 、下記のようにシェルからのプロンプ トに対して端末工ミュレータのコマンド名 dtterm を入 力すると、新たな端末工ミュレータを起動できます。 % dtterm & [ 3 ] 1537 シェルからは、上の例のように最後に & を付けてバッ クグラウンドで実行するのか通です ( フォアグラウンド で実行してもかまいませんが、そうすると起動した端末工 ミュレータカ鮗るまで、 dtterm を実行したウインドウで のコマンド操作ができません ) 。 しかし、 dtterm: コマンドが見つかりません などのメッセージが出力さコマンドかま行できないこ ともあります。これは、シェルの検索パスに dtterm コ マンドが置かれているディレクトリか含まれていないた め、 dtterm コマンドか検出できなかったからです。デス クトップ・アプリケーションの実行ファイルが収められ ているディレクトリは、デフォルトの検索パスには含ま れていません。そのディレクトリ ( 通常は /usr/dt/bin) を探し、次のようにして検索パスに含めましよう。 ・ C シェルの場合 % set path= ($path /usr/dt/bin) ・ Bourne シェノレ、 Korn シェノレク ) 上昜合 $ PATH=$PATH : /usr/dt/bin $ export PATH どのシェルを使うか ? 端末工ミュレータを起動すると、そのウインドウ上で 1 つのシェルが実行さユーザーとのやりとりをおこな います。これは、そのユーザーのログインシェルと同し シェルです。ご存しのように UNIX にはイ研頁ものシェ ルがあり、そのうち SoIaris では標準で Bourne シェル、 Kor Ⅱシェル、 C シェルの 3 つカ甘是供されています。 れらのうち、どのシェルを使う日殳定になっているのかは、 163
明しておきます。 dtterm コマンドには、端末工ミュレー タで実行するコマンドを指定する一 e オプションがありま す。たとえば、 % dtterm —e date; sleep 10 では、端末工ミュレータのウインドウか調き、 date コマ ンドの実行後、そのウインドウカ絲冬了します ( はとんど瞬 時に終ります ) 。ログインシェル以外のシェルを使った端 末工ミュレータを起動するには、一 e の後ろでシェルのコ マンド名を指定します。すると、そのシェルか新しい端 末工ミュレータで実行されます。 ・ Bourne シェノレクメ昜合 % dtterm —e sh & ・ Korn シェノレクメ昜合・ % dtterm —e ksh & ・ C シェルの場合 % dtterm —e csh & 起動時のシェル竟 端末工ミュレータで使用するシェルの尺力法が分かっ たところで、その竟設定について説明しましよう。端末 工ミュレータで使うシェルも、通常のログインシェルと 同じ竟 ( プロンプトやェイリアスなど ) で使いたいと思 うのが当然でしよう。そのためには、どのような準備を したらよいのでしようか。 シェルの環境設定、すなわちコマンド検索パスやプロン プトなどの変数の定義、工イリアスや関数の定義などは、 それぞれ次のファイルを使っておこないます。 UNIX MAGAZINE 1998.8 C シェルの場合は、ログイン時に . cshrc と . login が ${HOME}/. login ${HOME}/. cshrc ・ C シェルの場合 (${HOME}/. kshrc) ${HOME}/. profile /etc/profile ・ Korn シェノレク ) 上昜イ ${HOME}/. profile /etc/profile ・ Bourne シェノレクメ昜合 UN Ⅸへの招待可 この順番で実行さまた C シェルか起動されるたびに . cshrc か実行されます。 Bourne シェルや Korn シェル用の /etc/profile はシ ステム全体に共通のファイルで、どのユーザーがログイ ンしたときにも、その内容か実行されます。ホーム・ディ レクトリの下の . profile は、 Bourne シェル、 Korn シェ ルともログイン時にだけ実行されます。 Bourne シェル の竟設疋ファイルはこの 2 つだけですが、 Korn シェ ルには、環竟変数 ENV にファイル名を代入しておくと、 そのファイルの内容か実行されるという機能があります。 UNIX ではこのファイルに . kshrc という名前を付けるの が一ヨ麹勺ですが、もちろんこれ以外の名前でもかまいませ ん。そして、 . profile に次の行を言当しておけば、ログイ ン時だけでなく Korn シェルか起動されるたびに . kshrc か実行されます。 ENV=$HOME/. kshrc ; export ENV 以ーヒがシェルの竟成疋 . ファイルですが、端末工ミュ レータを起動しても、残念ながら (. cshrc を除き ) シェ ルに関連するこれらのファイルは実行されません。端末 工ミュレータ用に起動されるシェルはログインシェルで はないからです。ログイン時に実行される北 g ⅲ (C シ ェル ) や . profile (Bourne シェル、 Korn シェル ) に環 境を定義しても、これらはログインシェルではないため 実行されません。 C シェルなら、シェルの起動ごとに実 行される . cshrc が使えます。しかし、 Bourne シェルに は . cshrc に該当するファイルがありません。 Korn シェ ルでは . kshrc カリ用できそうに思えますが、そのために は事前に ENV 変数の定義 (. profile の実行 ) か不可欠な ので、こちらも使えません。 ところで、 dtterm コマンドにオプション—ls を指定す ると、ログイン時と同じ状態でシェルを起動できますに の場合は、もちろん . pr 。用 e などのファイルか実行されま す ) 。しかし、そのためには、どこかの端末工ミュレータ から dtterm コマンドをタイプして実行しなければなり ません。それでは、フロントパネルやワークスペース・メ ニューなどのデスクトッフ環竟から起動する端末工ミュ レータのシェルでは、どのようにして環境設定をするの でしようか ? 165
プログラミング・テクー ーック 次は直を指定する端末機能です。 li ( 行 画面の行数 co ( 桁印 画面の桁数 sg ( 彳あの so と se で残るよけいな文字 モードを変更するときによけいな文字カ戯ってしまう場 合に指定 ( 通常は 0 ) 最後は、値として文字列をもつ端末機能です。 pc ( 埋込み文字 ) タイミング合に用いる埋込み文字 ( 通常は NULL) ti ( プログラムが termcap を使うための文字列 ) termcap の機能を用いるために特殊な設定が必喫であ れば、それをおこなう文字列を指定 te ( プログラムが termcap の使用を終えるための文字列 ) termcap 処理用の状態か特殊な状態であれは、通常の 状態に戻る文字列を指定 ce ( 行末までを消去 ) カーソル位置から行末までを消去 cl ( 画面をクリアしてホーム位置へ ) 画面全体をクリア (clear コマンドで利用済み ) us ( 下線モードの開始 ) 字列 more コマンドの最終行で使う反転モードを終了する文 se ( 反転の終了 ) 字列 more コマンドの最終行で使う反転モードを開始する文 so ( 反転の開始 ) 桁と行を指定してカーソルを移動 cm ( カーソルの移動 UNIX MAGAZINE 1998.8 は太字になる ) 太字モードに入るための文字列 ( この文字列以降の文字 md 伏字の開始 ) 文字には下線カイ寸かない ) 下線モードを終了するための文字列 ( この文字列以降の ue ( 下線モードの終了 ) には下線カ咐く ) 下線モードに入るための文字列 ( この文字列以降の文字 me ( 太字の終了 ) 太字モードを終了するための文字列 ( この文字列以降の bc ( H でないときのバックスペース ) 逆方向 ( に向かってスクロール sr ( スクロールダウン ) カーソル位置に空行を追加 al ( 空行の追加 ) を左下に移動 more のサプコマンドを入力したときと同様にカーソル Ⅱ ( 最終行の最初の桁一多動 ) 画面左止にカーソルを移動 ho ( ホームへ移動 ) 文字は太字にならない ) ニュアルの termcap ( 5 ) を一読してください。 が、はかにも数多くの機能があるのでせひオンライン・マ も紹介しました。こでは一部しかとりあげませんでした マンドで使われている termcap データベースの端末機能 ータベースの処理に特化した関数群もあります。 more コ ための専用ライプラリ関数群まであります。 termcap デ データベースでも使われており、これらのファイルを扱う が用意されています。 termcap の形式は、ほかの数多くの 様生に対応するための端末データベースとして termcap UNIX ではいろいろな端末カリ用できますが、その多 いて説明しました。 今回は、端末に文字列を送って端末を制御するガ去につ ☆ ろな端末で使えるようになっています。 うに、できるかぎり機能を損ねることなく、しかもいろい ルしてテに新たな行を書いてもいいわけです。このよ 行にいる状態で行を追加してもよく、あるいは逆スクロー ルして頁方向に隠れていた行を書き込むときです。頁 は、 1 行前に戻るときなどに、画面全体を 1 行逆スクロー ではありません。 more コマンドがこの機能を利用するの ば、最後のはうで紹介した al と sr は両方とも必要なわけ それなりの動作かできるように考えられています。たとえ ています。さらに、これらの端末機能が使えない場合にも、 more コマンドでは、 ここに挙げた端末機能だけを使っ bs が偽の場合、代わりのバックスペース文字を指定 115 ( たしみ・ひさかす )
連載 / UN Ⅸ知恵袋ー① ・コマンドライン・べース SSH ・ Tera Term 拡長 SSH モジュール ・商用 SSH 端末ソフトウェア もちろん、上記以外の SSH ソフトウェアもあります。 気になる方は、検索エンジンなどで Secure Shell をキー ワードにして探してみてください。 コマンドライン・べース SS Ⅱ 最初に、無料で利用できるコマンドライン・べースの SSH ソフトウェアを紹介します。 ftp://ftp.cs.hut.6/ pub/ssh/contrib/ssh-l. 2.14- win32b ⅲから入手でき ます。アーカイプは ZIP 形式で圧縮されています。事前 に ZIP の鮹東コマンドを入手しておいてください。展開 ・ zlib. dll ・ gmp. dll ・ ssh-keygen. exe ・ SCP. exe ・ SSII. exe すると、以下の 5 つのファイルが生成されます。 UNIX MAGAZINE 1998.8 得しておいて損はありません。 すから、鍵を生成できる UNIX 竟が近くにない人は取 には RSA 鍵を生成する ssh-keygen. exe が伺属していま ません。ここで紹介したコマンドライン・べースの SSH このカ刻長モジュールには鍵の生成プログラムカイ寸属してい Tera Term の拡張モジュールをお薦めします。ただし、 Windows 竟で SSH を使う場合は、 : 難汀で紹介する 常の使用には耐えないでしよう。 駆使してなんとか使えるようにすることもできますが、通 を考慮していません。環竟変数やオプション・スイッチを が /etc になっており、 Windows カイ吏うドライプレター 概念がありません。また、システムの設定ファイルの位置 ますが、 Windows 95 にはホーム・ディレクトリという 合、ユーサーの RSA 鍵がホーム・ディレクトリに置かれ dows 特有の竟 0 ー染みません。たとえば、 UNIX の場 を Windows 竟で再コンノヾイルしたものなので、 Win- ります。ただし、このパッケージは UNIX 用のソース これらをパスの通った場所に置け ( 酥リ用できるようにな Tera Term 拡張 SSH モジュール Tera Term は Windows 上のターミナル・エミュレ ータです。 VT100 シリーズのエミュレーション機能と、 オートログインなどに利用できるマクロ言語を備えていま す。送受信する漢字コードの選択、改行コードの切替え、 Meta キーのサポートなど、 UNIX 環境を併用している ューザーにとっては痒いところに手か届く仕様となってい ます。プログラム自体も小さくまとまっており、央に イ乍するため、私も愛用しています。 Tera Term は寺西 高氏によって保守、開発されており、フリー・ソフトウ ェアとして配布されています。 http://hp ・ vector ・ co ・ jp/ auth 。 rs / VA002416 / などから職万版を入手できます。 Tera Term は DLL によって機育去張かできる構造に なっており、 Robert 0 ℃ allahan 氏が SSH 拡張モジュ ールを実装、公開しています。 http://www.zip ・ com ・ au /-roca/download. html から入手できます。対応するバ ージョンは Tera Term Pro 2.3 for Windows 95/NT Tera Term のインストール方法は割愛します。基本 的には、インストーラ (setup. exe) を実行するだけです。 Tera Term のインストールか完了したら、長モジュー ルをインストールします。ダウンロードしたカ長モジュー ルを展開し、 Tera Term をインストールしたディレクト リにコピーします。拡張モジュールのファイル名は ttssh. zip です。名前から分かるように、これも ZIP 形式で圧 縮されています。アーカイプを展開すると、以下のファイ ルカ吽 . 成されます。 ・ ttssh. exe . TTXSSH. dll ・ libeay32. dll ・ LIBEAY. TXT ・ ttssh. html Tera Term の夫行ファイル (ttermpro. exe) を起重力・す - る代わりに、 ttssh. exe を起動すれば拡張 SSH モジュー ルが組み込まれた Tera Term か起動します。環境変数 を設定すると、拡張 SSH モジュールを組み込んだ Tera Term を ttssh. exe を経由せすに起動することもできま 51
ー① 連載 / コミュニケーション用サーパーのインストールと運用 図 4 NNTP のコマンドー覧 (help の出力 ) 100 Lega1 commands authinfo user Name ー pass Passvord ー generic く prog> く args> article CMessageID ー Number] body [MessageID ー Number] date group newsgroup head CMessageIDl Number] help ihave 1ast 1ist [active ー active. times ー newsgroups ー distributions ー distrib. pats ー overviev. fmt ー subscriptions] listgroup nevsgroup mode reader newgroups yymmdd hhmmss ["GMT"] [ く distributions>] newnevs newsgroups yymmdd hhmmss ["GMT"] [ く distributions>] next post SIave stat [MessageID ー Number] xgtitle [group—pattern] xhdr header [rangel MessageID] xover [range] xpat header range ー MessageID pat [morepat ・ xpath MessageID Report problems tO くusenet@news . unimaga ・ ac ・ JP> 残りの部分は、「巧 . news. system. inn には 238 通の記 あるいは次のように表示されるかもしれません。 事があり、最小の記事番号が 1610 で、最大の記事番号が 200 news . unimaga ・ ac . jp NNTP server version ・ " 略・ 1990 」という未です。 ニュースサーノヾーが nntpd というソフトウェ これは、 このなかで、たとえば 1610 番の記事を調 , ヾる場合は、 アを使っているときのメッセージですが、この場合も以下 head 1610 の説明どおりに操作すれは祠しことができるはずです。 それでは、始めましよう。次のようにタイプすると、 とタイフすると、 NNTP て使えるコマンドの一覧カ俵示されます ( 図 4 ) 。 221 1610 く 01abcdef$789@news . unimaga ・ ac ・ jp> head he lp のような行に続いて記事のヘッダ部分だけが表示されま す。次に 1611 番の記事を調べたいときは、 head 1611 と入力してもいいのですが、その代わりに、 己事を読むには、 group 、 head 、 next 、 article の 4 つのコマンドを知っていれば十分です。巧 . news. system ・ ⅲⅡというニュースグループの記事を読んでみましよう。 group fJ . news . system. inn すると、 211 238 1610 1990 fj . Ⅱ e s. system ・ inn と表示されます。このうち、最初の 211 は返答の不頁を 示す、、 status response" という 3 桁のコードです ( 言岩田 は RFC977 を参照してください ) 。 一三ロ next とだけタイプしてみます。すると、 223 1611 く 98fedcba$321@news ・ unimaga ・ ac ・ jp> head のように出力されるので、続けて、 head 63 UNIX MAGAZINE 1998.8
連載 / コミュニケーション用サーパーのインストールと運用ー① 実際には近くの書店というより、 、知合いの " 書店とい 62 あ川よ、 Message-ID の確認作業すらおこなう必要がない 合、 Path: ヘッダにすでに、 B を経由した " という言求が バー A がニュースサーバー B に記事を送ろうとした場 ュースサーバーがすべて言求されています。ニュースサー 用されます。ここには、その記事の醋幻全中で軽由したニ Message-ID のほかに 、、 Path: ヘッダ " もあわせて活 合にのみ送るイ督はみになっています。 にあるかどうかを問い合わせ、、、ない " と回答してきた場 前にいったん Message-ID だけを送信して相刊則にすで を付けることになっています。 NNTP では、記事を送る 存在します。各記事には、それぞれ固有の Message-ID の記事の例にあった、、 Message-ID: ヘッダ " はこのために るどうかの判断ができないように思えます。しつは、図 2 か ? 記事の本体を受け取らないことには、すでに届いてい しかし、どうやって、その記事 " を特定するのでしよう らわなくてもいいよ」と伝えられるようになっています。 の経路では、「その記事はもう届いているから、送っても 二重に受け取らないための仕組みがあるので、遅れたほう 到達できる経路か莪数あってもかまいません。同し記事を きます。このとき、 NNTP では同しニュースサーバーに くことによって、多くのニュースサーバーへと伝わってい 図 3 からも分かるように、記事はコピーを繰り返してい 当するでしようか。 ば、多くの運送会社のなかから好きな会社を選ぶことに相 にはさまざまな手段が用いられます。書店のたとえでいえ されています ( 図の 1 点鎖線 ) 。このように、記事の配送 ており、現在でも小規模のおサイトへの醋幻こよく利用 (Unix-to-Unix CoPy) と呼ばれる転送手段も用いられ われます ( 図の太い実線 ) 。それ以外に、古くから UUCP News Transfer ProtocoI 、 RFC977) というイ督みが使 ースサーバー間で運ふ際には、おもに NNTP (Network 線や 1 点金泉て示したのか記事の流れです。記事をニ この仕組みは、図 3 のように表せます。この図で、実 すが・・ ので、できるだけ近くの書裔と知合いになったはうカで します。もちろん、わざわざ遠くの書店に運ぶのは面倒な 送る」という契約を交わすことにより、記事の醋医か成立 「自分のところに送られてきた辛府リ雑誌を君のところにも ったほうが正確かもしれません。店長どうしが、お互いに ので、さらに効率よく無丐ゞ省けます。 NNTP の体感実験 ーをインストールする前に、皆さん ーユースサーノヾ がユーザーとして使っているニュースサーバーを用いて NNTP のイ督はみを実感しておくとよいでしよう。 こでは、利用しているニュースサーバーの名前を仮 に、、 news. unimaga ・ ac ・ jp とします。次のように入力し ます 5 。 % telnet news ・ unxmaga ・ ac ・ JP nntp もし、 nntp: bad port number" などというメッセ ージか表示された場合は、 % telnet news. unimaga ・ ac ・ jp 119 としてみてください。 telnet コマンドの第 2 引数は、、ポー ト番号 " です。これを省略すると 23 番反定さ遠隔 ログイン用の、、 TELNET プロトコル " を使うことになり ます。番号を指定したときは、別のプロトコルを使います ( ホストへのログインとはまったく違うプロトコルです ) 。 すると、使っているニュースサーバーが INN を利用し たものなら、 200 news . unimaga ・ ac ・ jp InterNetNews NNRP ・・・中略・ (posting (k) ・ と表示されるはすです。ここでもし、 200 nevs ・ unimaga ・ ac ・ jp InterNetNevs server INN ・・中略・・・ ready と出たなら、続けて、 mode reader と入力してみてください伏文字でも可 ) 。そうすれは前者 のメッセージが表示されるはすです 6 。 UNIX MAGAZINE 1998.8 ついてのみ角見しています。 スリーダーからニュースサーバーー , 、、ツ月における NNTP コマンドに incoming ・ conf という言定ファイルに依存します。ここでは、 孑芒と認されているです。この差は、相手のニュースサーバーの 対し前者のメッセージは、ニュースリーダーからニュースサーバー , 、 ) と認識されており、そのためのコマンドカイ吏える状態になります。これに さオけこメッセージカ彳麦者だった場合は ニュースサーバー間での酉己 " 6 INN における NNTP は、大きく分けて 2 通りあります。孑第に表示 ください。 のがうまくいかないかもしれません。 OS 標ま ) ものを使って試して を使っていると、リターンキーを押したときの物朸甲題となって、以後 0S付属の telnet コマンドではなく、フリー・ソフトウェアの telnetx 5
$ sshd —p 8022 成疋ファイルなら、 Port 8022 のように指定します。 root ログインの制限 連載 / UN Ⅸ知恵袋ー① 50 ・ IDEA ズムは次の 3 不頁です。 SSH のパッケージに標準で添付されている暗号アルゴリ ssh はいくつかの暗号アルゴリズムを実装しています。 暗号アルゴリズムの あげます。 節召介します。ここでは、代表的な言項目のみをとり 岩田な言方法は「 sshd 、 ssh のオプションと員聢」の の日ファイルの順に優先して値か設定されます。 ョン・スイッチ、ユーザーごとの成疋ファイル、システム システムの正ファイルは /etc/ssh-config です。オプシ ューザーごとの聢ファイルは $HOME/. ssh/config 、 ・ RSA 鍵ファイルの位置 暗号アルゴリズムの不頁 タマイズできます。次のような項目か設定可能です。 ン・スイッチや設定ファイルによって、 ssh の乍をカス と孑し、暗号イし凾信路を提供します。起重加 ) オプショ ssh コマンドは、リモート計算機で起動している sshd ssh の設定 る場合はⅡ。を指定します。 ます。空のパスワードを許可する場合は yes を、禁止す 禁止したい場合、 PermitEmptyPasswords 命令を使い 空のパスワードを使っているユーザーによるログインを 空パスワードの制限 する場合は no を指定します。 す。 root からのログインを許可する場合は yes を、禁止 るのを制限したい場合、 PermitRootLogin 命令を使いま スーパーユーザーが ssh コマンドを使ってログインす ・ Triple DES ・ Blowfish イ更用する暗号アルゴリズムは、 -c c ゅん er スイッチか、 設定ファイルの Cipher 命令で指定できます。各暗号 アルゴリズムを選択するには、それぞれ idea 、 3des 、 blowfish のいすオ功、を指定します。指定した暗号アルゴ リズムをログイン先の sshd がサポートしていない場合は、 自動第勺に別の暗号アルゴリズムが〕尺されます。 鍵ファイル立置 各ューザーの RSA 鍵は、 $HOME/. ssh/identity フ ァイルに格納されています。このファイルの位置は、一土 記 e 孑 le スイッチか、設疋ファイルの ldentitYFile 命令で変更できます。たとえは、鍵ファイルを $HOME/ lib/ssh/rsakey にしたい場合は、オプション・スイッチ で次のように指定します。 $ ssh ー土 -/lib/ssh/rsakey あるいは、設定ファイルに次の 1 行を言己します。 IdentityFi1e -/lib/ssh/rsakey ポート番号の指定 ログイン先の sshd が、標準とは異なるポートで待ち受 けている場合、 ssh コマンドで明示的にポート番号を指定 しなければなりません。ポート番号旨定には、 -p - れ社 m スイッチか、設疋ファイルで p 。 rt 命令を使います。 WindowsEk±Z での SSH 現在、 PC 上で動作する OS として Microsoft Win- dows が世界的に普及しています。その煽りを受けてか、 Microsoft の環境で利用できないソフトウェアは低く評 価さオ功ゞちです。たしかに、どんなに優れたソフトウェア であっても、利用することができなければ絵に描いた餅に すぎません。 SSH は、幸運なことに Windows 竟でも 利用できます。 外出時に持ち歩くパソコンに UNIX 竟を構築してい る人は、おそらく少底でしよう。 Windows 環境て利 用できる SSH ソフトウェアとして以下の 3 つを紹介し UNIX MAGAZINE 1998.8
連載 / IJN Ⅸ知恵袋ー O 図 4 ssh-keygen ・ exe によるホスト RSA ー成 C : \ > ssh-keygen. exe —C myhost Generating p : Generating q: Computing the keys. Testing the keys . . + + (distance 230 ) . + + (distance 340 ) Key generation complete. Enter file in which to save the key ($HOME/ . ssh/identity) : Enter passphrase : 何も入力せすに改行 Enter the same passphrase again: 何も入力せずに改行 host—key 図 5 Tera Term SSH 認証ダイアログ SSH 角 u を h を n 朝 0 ion L00 を 0 トⅷ肥 3 Ⅵ . い . sh 引 p. 00 A 園加肥記 翁し朝 p 鰍引 0 リ日 SAk を 0 面 OK O 朝ⅲ日 ct 利用できるのであれは、 UNIX 上の ssh-keygen コマン ドを使って鍵を作成できます。もしくは、前節で紹介し た Windows のコマンドライン・べースの ssh-keygen. exe を使って作成することもできます。ューザーの RSA 鍵とホスト RSA 鍵に本質的な違いはありません。どちら も ssh-keygen (ssh-keygen. exe) コマンドで生成できま す。ただし、ホスト RSA 鍵のパスフレーズには空文字 列を設定する必要があります。図 4 に作成の手順を示し ます。 前節のコマンドライン・べース SSH に付属する ssh- keygen. exe を利用する場合、かならす一 c comment ス イッチを付けてください。何も指定しないとエラーになり ます。この問題は、 Windows 竟でホスト名を得るイ督は みに起因するようです。通常、コメントは、、ユーサー名@ ホスト名 " の形式で自動生成されますが、 Windows 竟 ではホスト名の取彳ゞうまく重川乍しませんでした。場当た り的ですが、明カ勺にコメントを指定することで回避でき ます。 ここまで言殳定して、ようやく口グインできるようになり ます。図 1 のダイアログで、、 Service" と、、 Host:" を指定 UNIX MAGAZINE 1998.8 して接続してください。図 5 に示す認証ダイアログカ俵 示されるはすです。利用する認証方法を 3 つのうちから 〕尺し、正しいパスワードもしくはパスフレーズを入力す れは号通信路の完成です。 SSH による接続カ院了する と、 Tera Term のタイトノレヾーに描かれているアイコン に鍵のマークカ俵示さ暗号通信中であることが分かり ます。 Tera Term によるポートの車医 拡張 SSH モジュールは SSH のポート転送機能をサ ポートしています。現在のところ、ポート転送機能は GUI による設定かできません。 Tera Term のオプション・ス イッチて指定する必要があります。サポートしているスイ ッチは次の 2 つです。 ・ /ssh-Llocal-port : remote-host : m 尻 e 叩 0 ローカル計算機のあ c -2 。から入出力されるデー タを、 m 。 te 訪。で指定されたリモート計算機の m 尻 e - 四に中幻します。リモート言算機上で提供さ れているサーピスをローカル言 t 算機から利用する場合に 使います。 ・ /ssh-Rremote-port : remote-host : あ c 叩 0 眦 rn 尻 e 訪 0 で指定されたリモート計算機の remote- 四から入出力されるデータを、ローカル計算機の あ c - に中幻医します。ローカル計算機で提供してい るサーピスをリモート計算機から利用する場合に使い ます。 POP サービスと SSH サーピスを提供している計算機 があるとします。暗号通信路で POP サーピスを受けた い場合、たとえば次のようにして Tera Term を起動し ます。 53
リスト 2 tget 関数群を禾堋したプログラム #include く stdio . h> #include く stdlib . れ> #define CAP main( ) char char char char *term; buf [ 1024 ] ; s [ 1024 ] ; ( (term = getenv( "TERM") ) = = NULL) { fprintf (stderr , "Can ' t get TERM environment\n") ; exit(l); (tgetent(buf, term) く 0 ) { fprintf (stderr , "tgetent failed\n" ) ; exit(l); if (tgetstr(CAP, (p) く 0 ) { fprintf(stderr, "tgetstr failed\n") ; if if exit(l); tputs(), 1 , putchar) ; exit(O) ; のまま出力に使える文字列です。 もう 1 つの tputs は、やや変わった関数です。引数に は出力したい文字列、文字列の出力によって景を受ける 行数、文字の出力用の関数の 3 つを指定します。端末への 出力で複数行にわたって景グがおよふ場合は、タイミング か重要になります。タイミングを合わせるためによけいな 文字を出力することがあり、この関数ではその引算をおこ ないます。引数を参照し、よけいな文字を出力する必喫が あるようなら、適宜埋めてくれるのです。ですから、基本 的にはこの関数を使って出力すればよいわけです。 さきほどと同し関数を、今度は tget 関数群を使って書 いてみましよう ( リスト 2 ) 。 関数のインターフェイスがやや違うためにちょっと変 わっていますが、基本的にはさきほどのプログラムと同じ ことをしています。 なお、ここで紹介した tget 関数群のライプラリ関数は、 通常リンクされるライプラリには含まれていません。これ らの関数を利用する場合は、 termcap ライプラリをリン クする必要があります。 C コンパイラて処理するときに、 —ltermcap オプションを付けてください。 114 termcap で利用する端末機能 それでは、 termcap データベースのエントリで使われ る端末機能を紹介しましよう。すべてはとりあげられない ので、ここでは more コマンドで使われている端末機能に 絞って説明します。 more コマンドでは、 screen. c のなか で termcap データベースの処理をおこなっています。 ます、フラグとなっている端末機能からです。 hc ( ハードコピー端末 ) 紙に出力するような端末の場合に真 am ( 自動マージン 3 ) 端末に自重丿卩ージンの機能があれば真 xn ( 80 桁以 - ヒの予は無め 80 桁以 E の桁数での丁文字が無見される場合に真 db ( 画面の下まで保存 ) 画面の下まで保存されるのなら真 bs CH でノヾックスペース ) バックスペース ( カーソルを左に戻す ) カなら真 3 行末にきたとき、自重加勺に復帰彳仂入される端木虍です。 UNIX MAGAZINE 1998.8
最後に、プロキシー・サーバーが意図どおりに重川乍する かを石忍します。うまく動かない場合は、かならず意図ど おりに動くまで設定を修正してください。糸寸に、「ちょ っとおかしいけど、ま、これでええやろ」などと中途半端 な設定で放置してはいけません。 パラメータ属性 x-gw に指定できるパラメータ属生は表 2 のとおりです。 それぞれの意味と、オプションについて説明します。 x-gw を夫行するユーサー username に対して、アク セス缶衂を設定します。 引数 username には、 FWTK のユーザー認証システ ムに登録されたユーサー名を指定します ( ワイルドカード も使用できます ) 。 tn-gw や rlogin-gw へのアクセス時にユーサー認証を 省略する設定にしている場合は、ユーサーを特定できない ので、 x-gw はユーサー unauth から起動されます。 ・ -display オプション ューサーに対して固定したディスプレイ番号を割り当て ます。 ディスプレイ番号カ個定されるため、 1 人のユーザーが 複数の x-gw を起動庁ることはできません。 手許の X サーバーが異常終了した場合、ファイアウォ ール・ホスト上に x-gw が残ったまま接続が切れてし まうことがあります。こうなると、ファイアウォール の管理者に頼んで x-gw を終了してもらわないかぎり、 そのユーザーは二度と x-gw を起動できなくなります。 その意味で、あまり役に立たないオプションです。 指定できる数字は 1 以 E の整数です。 0 を指定すると、 このオプションの設定は無効になります。 UNIX MAGAZINE 1998.8 ァイアウォールの作り 表 2 x - gw のパラメータ属性 パラメータ属性 社フ 10 〃 ~ e timeout second id1e second ( しらさき・ひろお ) オプション —display れ社 m —permit ん OSt れ佖 ~ e idle—timeout second 認 説明 ユーサーごとのアクセス制御 ディスプレイ番号を設 アクセスを許可する計算機の言殳定 接続を切断するまでのアイドル間 ( 秒 ) を指定 ・ -permit オフション X クライアントの接続要求が、このオプションの引数 て指定した言算機から送られてきた場合だけ接続を許可 します。このとき、ユーザーに対して石忍ウインドウに よる接続石忍、はおこなわれません。 複数のホスト名を指定するときは、スペース文字で区切 って列挙します。 timeout 一定の秒数のあいだ、バケットを中継しない ( アイドル ) 状態か読くと、 x-gw は自重加勺にそ窈妾続を切断します。 デフォルトは、、切断しない " です。単位は秒です。 idle/idle-timeout パラメータ timeout で指定できる値の最大値を設定し ます。 timeout と idle ( または idle-timeout) の両方を設疋 した場合、小さいほうの値か有効になります。 idle しか設 定しないと、 timeout か設定されていないため、アイドル 時間による切断はおこなわれません。もちろん、 timeout だけを設定した場合は、アイドル時間による切訟有効に なります。 それにしても、いったいなんのためのパラメータなので しようか・ コマンドの書式 通常、 x-gw は tn-gw や rlogin-gw から走力し、コマ ンド行から実行することはないので ( できないわけではあ りません ) 、コマンドの書式についての説明は省略します。 次回は、 http-gw について説明します。 今月の竹喋はここまでです。 ☆ 37