SSH - みる会図書館


検索対象: UNIX MAGAZINE 2003年7月号
22件見つかりました。

1. UNIX MAGAZINE 2003年7月号

連載 / IJN Ⅸの道具箱ーの 了します。 ()P アドレス ) を書いておきます。 $HOME はホーム・ 機で下記のいすれかのファイルにクライアントのホスト名 川い 証でログインできるようにするには、サーバー側の計算 る計算機に対してはこの認証方法は使えません。 . rhosts れている場合しか利用できません。つまり、初めて接続す こないます。ただし、サーバー側のホスト公開鍵が登録さ す前述のホスト認証をおこなったあと、 . rhosts 認証をお これに対し、 RSA ホスト認証付き . rhosts 認証では、ま 定により許可されていません。 キュリティ上の問題が大きいので、通常はサーバー側の設 アドレスを偽装することで簡単にすり抜けられるなど、セ ホスト認証をおこないません。そのため、計算機名や IP 用いた認証とまったく同しガ去で認証されます。つまり、 . rhosts による認証は、 rlogin や rsh での . rhosts を (DSA) 公開鍵による認証を利用すべきです。 が使えるため、認証の安全陸を考えればなるべく RSA ワードよりもはるかに長い文字列 ( 通常は 10 ~ 30 文字 ) (DSA) 公け懾正で用いるパスフレーズは、 UNIX パス 攻撃などによって破られてしまうかもしれません。 RSA 般に UNIX パスワードは 8 文字以下なので、総当たり にパスワードを流すことに変わりはありません。また、 しかし、暗号化されているとはいえ、ネットワーク上 は暗号化されています。 ます。もちろん、ホスト認証か終っているのでパスワード そこでパスワード・データベースによる認証がおこなわれ rlogin や telnet と同様にパスワードをサーバーに送り、 証がおこなわれます。 UNIX パスワードによる言正では、 録していない場合、通常は UNIX パスワードによる認 ューサーがサーバー側の言 t 算機にユーサー公開鍵を登 徴です。 ならない青幸ゞまったくネットワーク上を流れないのカ畤 この手順では、パスワードや鍵など、他人に知られては ディレクトリを表します。 ・ $HOME/. rhosts ・ $HOME/. shosts ・ /etc/hosts. equiv ・ /etc/shosts. equiv 92 これは、あとで説明する OpenSSH を利用するサー ノ、 ーの場合です。はかの SSH サーバーでは場所が異なるか もしれません。また、 OpenSSH の場合でもサーバーの設 定により変更できます。 SSH2 では s / key によるワンタイム・パスワードも利 用できますが、 OpenSSH のデフォルトの設定では 0 仕に こでは省略します。 なっているため、 SS Ⅱのインストールと準備 それでは、 SSH のインストールとログインするための 準備について説明します。 どの SSH を使うか 前述のように、 SSH には複数のバージョンがあり、実 装もフリーのものや商用のものなどさまざまです。そうな ると「じゃあ、どの SSH を使うのがええのんや ? 」と悩む 方もいるでしよう。その答の 1 つが「 UNIX なら ()per ト SSH 、 Windows なら PuTTY 」だと思います。 OpenSSH は SSHI と SSH2 の両方に対応しており、 完全にフリーな実装なので誰でも使えます。転送するデー タを gzip ) 疇宿することができたり、次回に紹介する予定 の X のフォワーディング機能など、さまざまな利点もあ ります。さらに、 FreeBSD や NetBSD 、 Debian など 多くの OS て驃準でインストールされます。 Windows で SSH というと、 Tera Term に拡張 SSH モジュールを使った TTSSH が有名ですが、 TTSSH は SSH2 に対応していません。それに対し、 PuTTY は SSHI と SSH2 をサポートしているため、より安全な通 信カゞ可能です。 そこで、以降では OpenSSH と PuTTY を使って説 明していきます。また、ログインする言 1 算機も OpenSSH のサーバーか動いているものとします。 OpenSSH OpenSSH は、多くの UNIX 系 OS で ports や pkg- src などのパッケージ・システムを利用して簡単にインス トールできます。たとえ tiFreeBSD なら、 ports コレク ションの security/openssh-portable になります。必要 なライプラリなども自重加勺にインストールされます。 % cd /usr/ports/security/openssh¯portable % su UNIX MAGAZINE 2003.7

2. UNIX MAGAZINE 2003年7月号

U N Ⅸの道具箱 中山貴夫 SSH 最近は、インターネットを通して遠隔のマシン間での データのやりとりが日常的におこなわれるようになってい ます。出張先や新幹線から研究室や自宅のマシンに簡単に アクセスできる工竟か整い、たいへん便利になりました。 しかし、簡単にいろいろなマシンにアクセスできる環境だ からこそ、さまざまな脅威から自分のデータや凾信内容を 守る必要も出てきています。 たとえば、皆さんのなかにはリモートのマシンにログイ ンするときに、 telnet や rlogin を使っている方もいる かもしれません。しかし、その際にネットワーク上を流れ るすべてのデータはなんの加工も施されていない、いわゆ る、、たオ L 流し " の状態なので、簡単に覗き見 ( 盗聴 ) でき てしまいます。 図 1 と図 2 は、ある計算機にリモートから rlogin で ログインし、何もせすにログアウトしたときの様子と、そ れを盜聴した結果です。図 2 は一を切り出したものです が、省略した部分ではアカウントやパスワードもしつかり 見えてしまっています。 このように、た充し " で、、丸見え " の通信では、パス ワードを他人に知られてしまい、それによって自分のアカ ウントを悪用されないともかぎりません。 そこで、通信を暗号化してデータを守るさまざまな手段 が開発されてきました。そのなかでもよく使われているの が、今回紹介する SSH です。 SSH (Secure SHeIl) は rsh や rlogin 、 rcp など、いわゆる R 系コマンドの f となるプログラムで、強力な暙号化機能により盜聴やデー タの改竄などの攻撃を防ぐことができます。図 3 は、図 1 の通信を SSH を使って暗号化したときの盗聴結果です。 見れは分かるとおりみごとに暗号化されており、これなら UNIX MAGAZINE 2003.7 覗き見されても安じ、です。 SSH で用いられる暗号化方式 SSH では通信路をどのように暗号化しているのでしょ うか。 SSH では、公開多音・号方式 1 と共通鍵暗号方式 2 の 2 不頁の暗号化方式カイ更われています。ここでは、ますこ の 2 つの暗号化方式を簡単に紹介し、 SSH でおこなわれ ている暗号化について説明します。 公開音号方式 公開多音号方式では、、、公開鍵 " と、、秘密鍵 " の 2 つの 鍵をセットで利用します。公開鍵は文字どおりひろく公 開されて誰もが使える鍵で、通信の際には、この公開鍵で 暗号化をおこないます。この公開鍵で暗号化されたデータ は、セットになる秘密鍵でしか復号できません。そのため、 秘曾建はけして他人に見られてはいけません。 それでは、公開音号方式による通信の例をみてみまし よう。図 4 では、公開音号方式を使って A さんが B さ んに秘密のデータを送信しています。 ます、 A さんは B さんの公開鍵をあらかしめなんらか のガ去て取得します。公 l} 巒建は他人に見られてもかまわな いので、この時点ではとくに通イ言路を暗号化しておく必要 はありません。そして、取得した公け艀建でデータを暗号化 し、 B さんに送信します。このデータは公開鍵によって暗 号化されているので、他人に盜聴されても内容を知られる 心配はありません。データを受信した B さんは、自分の秘 密鍵を使って復号し、そのデータを読むことができます。 このように、公艀音、号方式は他人に見られてもよい公 1 非用暗号方式ともいいます。 2 対利暗号カ式ともいいます。 87

3. UNIX MAGAZINE 2003年7月号

連載 / UN Ⅸの道具箱ーの 図 19 ホスト公開登金認ダイアロク server's key is 弋 0802d the registry. You have ー gu 1 ね e that the server 朝せ愴 CO 猷 you think ⅱ serveris k ssh-rsa 1024 : 8e ・ 9b ぉ 4 。 f4 = = 4f = f9 = 1 住 cO = 68 = 75 = 60 = 94 , lb = 7d If you trustthis s hit Yes t0 6 the key t0 PuTTYs cache 8 祠 c on connecting Ⅱ you w 聞い 0 c connecting just once. without 記 d に key 扣弋 C82. hit NO. If you d0 い「 t this host. hit Oance い 0 abandon 旧 connection 図 20 PuTTY によるログインの好 図 17 PuTTY(• SSH のプロトコル・パージョンをキ諚 ーカテ衂 一三セッション ロギング 三喘末 キーポード ・・ベル 特徴 三ウインドウ 振る舞い 変換 色 Telnet 曰 SSH 認証 トンネル ハグ PuTTY Security Alert SH 接続を管理するオプション サーこ送られるデータ リモートコマンド プロトコルオプション 「疑似端末を確保いよい 「圧縮を有る ) 優先する SH プロトコ胸トジョン : 0 1 レ 0 1 暗号化オプション 暗号化選択の丿シー AES SH 2 on レ Blowf ish 3DES - warn below here - D ES 「 SSH 2 ( 標準でな地ト QES の使用を有こする 0 2 レ 三接続 ロ X 、 b s.a - n 社第 - PuTTY ・ n as: ト oeh ( 4uthenticating ⅵ物 public key 、 sa - key -20D304 い ph se for key ・・ r 鱸 - k ー 20030411 ・・ ぎ編 : 「 03 : 58 : 03 2003 行 0 第 i 「に t - la ト引 3.0i5 L60 (BßSS) 1 : Apr 7 : 55 : 28 JST 2003 e { 0 或 BSD ! 上へ但 ) 下へ 0 ーー About ヘルプ⑧ 図 18 一諚 Pu1 下′セッションの基本オプション 接続先をホスト名または IP アドレスで指定してくだ、 ホスト名はたは IP アドレス ) ⑩ 22 bass. 8 ist-nara.ac.Jp プロトコル 0 ßaw 0 t 0 R 飾 翁 SSH ストアされたセッションの読込、保存、鄰 保存されたセッション ( 印 bass 太ん幵 Y 設定 功テゴリ⑥ : セッション ロング 三喘末 キーボード ベル 特徴 一三ウインドウ 外顧 指るい 変換 色 Tehet RIogin 日 SSH トンネル バグ 図 21 日も大丈夫 終了時のウインドウクローズぐ 0 常にする 0 しないーンな終了時のみ 舅、 bass. 引引 - n 誂る c ー [ h 籌を d r. ~ は自削地 g きつ ] Proj に 0 を 14P に 5 = 「 - . 13 調年度版までの報告書を公問 しています。 M. RCOT-SERVERS. NET13WIDE Proj を駛により 1337 年 8 月から用しています。 ・世代インターネットプロトコル 冂 Pv6 」冂 P 0 」「 Mo いⅣ」に関する 研究に取り組んでいるⅣ v6 ワーキングレー プの情報を提供しています。 : ⅵ実験ネットワークについ 6 新「に - JP の精報とそのネットワークトボ ロジーデータを提供しています。 日知らせ 程 003 / 3 / 23 new インターネット相互梠僥 ポイント d ⅸ - i を分散運 用を開始しました。 * 2 圓 3 / 3 / 3 れ 「インターネットと自勒 車ワークショッゴ」プロ グラムを更新しました。 * 2003 / 2 / 13 new 「インターネットと自動 車ワークシコップ」問催 のご案内を掲載しました い ] 読込化 ) 保存 ・削除 0 鸞 BS [ 系 0 & 獰Ⅳ月 Ps ”実を誾発し、オーラン シンククエスト で提供しています。 ⅵ” i く盟 H 肥 P 0 J した公開鍵は SSH2 のものですから、 2 にチェックを 入れます ( 図 17 ) 。当求した鍵のバージョンとここでチェ ックしたバージョンか異なると、公開鍵による認証ではな PuTTY の場合 く、 UNIX パスワードによる認証になってしまいます。注 次は PuTTY を用いたログインです。 PuTTY を起動 意してください。 し、設定の、接続 " →、、 SSH" →、、訒証 " という項目を表 続いて接続先窈旨定です。、、セッション " 項目の、、ホス 川じ、 示します。そして、、、認証のためのプライベートキーファ ト名 ( または IP アドレス ) " 欄に接続先ホストを入力しま イル " 欄に、さきほど作成したユーザーの秘密鍵を指定し ・・というわけにはい す。 Windows では localhost に ます ( 図 16 ) 。 かないので、さきほど OpenSSH で接続した言 t 算機に接 続することにします。その下の、、プロトコル " の項目は、 "SSH" を選び、、、優先する SSH プ 次に、、、接続 " 忘れすに、、 SSH " にチェックを入れてください。デフォル " という項目を指定します。今回作成 ロトコノレノ、ージョン く 98 UNIX MAGAZINE 2003.7

4. UNIX MAGAZINE 2003年7月号

連載 / UN Ⅸの道具箱ーの 表 2 OpenSSH のコマンド コマンド ssh (slogin) SCP sftp ssh-keygen ssh-agent ssh-add ssh-keyscan ssh-keysign sshd sftp—server 概要 SSH でホストべース言正を使うための補助フ。ログラム SSH 用の公け建を集めるプログラム 認証工ージェントに新しい鍵を記慮させるときに使う RSA や DSA による認燾膳建クメ尉寺に使うエージェント・プログラム RSA 、 DSA の公非丘建作成に使う。ホスト鍵、ユーザー鍵ともに作成できる ftp を SSH により暗号化したプログラム ほかの引・算機へファイルをコピーする (rcp の代わり ) はかの計機にログインする (rlogin の代わり ) SFTP サーノヾー・プログラム SSH のサーノヾー・プログラム 表 3 OpenSSH の言聢ファイル # make install セキュリティ上の間題があったり、パッケージ・シス テムで OpenSSH カ甘是供されていない OS を使っている などの理由により、手作業で OpenSSH をインストール する場合は次のようにします。 OpenSSH のインストールの前に、あらかじめ Open- SSL と zlib をインストールしておきます。 OpenSSL は さまざまな暗号化アルゴリズムのライプラリで、最新版は 0.9.7a です。 zlib は gzip や zip の宿に使われているア ルゴリズムのライプラリで、山肄〒版は 1.1.4 です。これら のインストールの手順は省略しますが、いすれも config- ure スクリプトを使ってインストールできます。 なお、インストールする際にはかならす去肄〒版を利用す るようにしましよう。旧いバージョンにはセキュリティ・ ホールがあるかもしれません。 ) 京不高執畤点 : での Open- SSH の最新版は、 2003 年 4 月 1 日にリリースされた ノヾージョン 3.6.1 です。ソースファイノレは openssh-3. 6.1P1. tar. gz で、 ftp://ftp.iij.ad.jp/pub/OpenBSD/ OpenSSH/portable/ などから入手できます。 バージョン番号に付いている pl " は、移植版であるこ とを示しています。 OpenSSH は OpenBSD プロジェク トで開発か進められており、 OpenBSD 以外の OS では 稷直版を利用します。 OpenSSH のコンパイルは configure スクリプトによ って簡単におこなえます。通常はオプションを付けなくて も間題はありません。ー -help オプションを付けて実行す ると、オプションの一覧か表示されます。 % . /configure ——help ( オプションの一覧が表示される ) UNIX MAGAZINE 2003.7 ファイノレ ssh-config sshd -config ssh-host-key ssh-host-key. pub ssh-host-dsa-key ssh-host-dsa-key. pub ssh-host-rsa-key ssh 」 10St -rsa-key. pub 役割 ssh の成疋ファイノレ sshd の正ファイル SSHI の RSA ホスト秘密鍵 SSHI の RSA ホスト公け雕建 SSH2 の DSA ホスト秘密鍵 SSH2 の DSA ホスト公開鍵 SSH2 の RSA ホスト秘建 SSH2 の RSA ホスト公巒建 図 8 sshd 起動スクリプト列 (rc. local への自加 ) # sshd start if [ —x /usr/local/sbin/sshd ] ;then /usr/local/sbin/sshd & & echO ' sshd' % . /configure configure が正常に終了したら、 make 、そして make install を実行します。インストールされるコマンドの一 覧とその概要を表 2 に示します。各コマンドの man ペー ジも同時にインストールされます。 % make % su Password: * * * * * * # make install 同時に、各種設定ファイルやホスト認証用の鍵がイン ストールされます ( 表 3 ) 。通常、これらは /usr/local/etc ディレクトリに保存されます。ただし、パッケージ・シ ステムでインストールしたり、 OS と同時にインストール された場合などは、 /etc/ssh や /etc に保存されることが あります。 OS によって異なるので注意してください。 インストールカ鮗了したら、サーバーである sshd をマ シンの起重加に自重加勺に起動けるようにしておきます。 fi ノ、 93

5. UNIX MAGAZINE 2003年7月号

連載 / UN Ⅸの道具箱ーの 図 10 ssh-keygen による作成と作成された公開鍵 localhost% ssh—keygen —t rsa Generating public/private rsa key pair ・ Enter file in which to save the key (/home/local/hoehoe/ . ssh/id_rsa) : Created directory ' /home/local/hoehoe/ . ssh' Enter passphrase (empty fo て取 0 passphrase) : * * * * * * * * * * * * * * * * * * Enter same passphrase again: * * * * * * * * * * * * * * * * * * Your identification has been saved in /home/local/hoehoe/ . ssh/id_rsa. Your public key has been saved in /home/local/hoehoe/ . ssh/id—rsa. pub. The key fingerprint is : fb : b3 : 30 : fd : ee : 87 : 71 : 27 : b8 : 40 : 23 : 80 : df : 51 : lc : b4 hoehoe@hohou. aist—nara. ac ・ JP localhost% cat id—rsa. pub ssh—rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAufweq/zXncchY3r12VGRQCzXXP5n5MDoDqwFLv8Gz8fk PI 1081G02yCF9pU6E0gOkazzS76CxetWPdBrQvyqZut82rPtg + yoDRPhRNGzchgDHTp5KfUYeVFOL519 iWJyFKRNSj jGMw1T + b70sIrQLr1FoRLi/q150= hoehoe@hohou. aist—nara. ac ・ jp localhost% 図 11 鍵の ローカルホスト $HOME/. ssh id rsa id_rsa. pub id dsa id_dsa. pub identity identity. pub : リモートホスト $HOME/. ssh authorized_keys2 authorized keys 公開鍵を登録 SSH2 の、 authorized-keys というファイルに SSHI の 公開鍵を登録します ( 図 11 ) 。複数のマシンから SSH に よるログインをする場合は、 1 行に 1 っすっ当求すること になります ( さきほども説明しましたが、 1 つの鍵は 1 行 に言当します。途中で改行を入れたりしないように注意し てください ) 。 初めて SSH を使う場合は、これらのファイルは作られ ていないはすですから、新たに作成し、そこに書き込みま す。たとえば、ローカルホストに SSH でログインできる ようにするには、 localhost% cp ~ / . ssh/id-rsa. pub \ ~ /. ssh/authorized—keys2 のようにすればいいか・ ・・というと、そうではありませ ん。 authorized-keys2 にはすでにほかの計算機の公開鍵 が登録されている可能性があるので、次のようにしたほう か安全です。 localhost% cat ~ / . ssh/id—rsa. pub > > \ ~ / . ssh/authorized—keys2 これて準備完了です。 UNIX MAGAZINE 2003.7 PuTTY PuTTY は、 Simon Tatham 氏らが開発している Windows 上で SSH2 に対応した数少ないクライアント の 1 つです。現在の最斤バージョンは 0.53b です。 scp や sftp に相当するコマンドも用意されており、これから Windows で SSH を使ってみようという方はもちろん、 いままで TTSSH など他の SSH クライアントを使って いた方にもお勧めです。 PuTTY の Web ページは、 ・ http://www.chiark.greenend.org/uk/ -sgtatham/putty/ です。ここからダウンロード用のページに飛ぶことができ ます。このページでは PuTTY 本体のはか、 PSCP や PSFTP (scp や sftp に相当するコマンド ) のモジュール ごとのダウンロードもできますが、通常はインストーラ形 式の putty-0.53b-installer. exe をダウンロードす川まよ いでしよう。このファイルを実行すると、ウイザードに よるインストールがおこなわれます。 PuTTY 本体だけでは日本語の表示ができませんが、 95

6. UNIX MAGAZINE 2003年7月号

団こ三・→三こ [ 三 ] 連載 / UN Ⅸの道具箱ーの 図 4 公開音号方式 図 5 共通号方式 B の秘密鍵 B の公開鍵 公開鍵 なんらかの方法で取得 平文 復号 暗号文 送イ 暗号文 平文 暗号化 = = ロ そのため、通イ目手ごとに違う鍵を用意して使い分けた SSH のバージョン り、通信のたびに違う鍵を用意するといったように工夫さ れています。しかし、いすれにせよどうやって鍵を共有す SSH には SSHI と SSH2 の 2 不頁があり、 SSHI で るかカ墹題となります。 はプロトコル 1 が、 SSH2 ではプロトコル 2 が用いられ 共通鍵暗号方式は鍵の管理が面倒ですが、暗号化や復 ています。 号の処理が上如勺簡単なので、公開鍵暗号よりも高速な SSHI には、さらに 1.3 と 1.5 の 2 つのバージョンが 通信が可能です。共通釶暗号方式の例としては、 DES や あり、どちらも認証に RSA が使用できます . 3DES 、 BIowfish などが挙げられ、いすれも SSH で使 SSH2 では、当初は RSA に関する特許間題を避ける われています。 ため、 DSA という公開音号方式カ甘采用されていました。 SSH では・・ しかし、 2000 年 9 月に RSA の特言雀か放棄されてから SSH では、計算機どうしやユーサーの認証に公開音 は、 SSH2 でも RSA が使えるようになりました。 RSA 、 号方式を、認証後の実際の通信には共通釶暗・号方式を利用 DSA のどちらを使っても暗号強度などに差はないといわ しています。こうすることで、安全て処理の速い通信がお れています。 こなえるような言になっています。 SSHI と SSH2 の違いは、プロトコル 2 のほうか証 89 UNIX MAGAZINE 2003.7

7. UNIX MAGAZINE 2003年7月号

連載 / IJN Ⅸの道具箱ーの 図 9 sshd 起動スクリプト列 # ! /bin/sh /bin/kill 'cat $SSHD—PID' if [ —r /var/run/sshd. pid] ; then stop) f i /usr/local/sbin/sshd & & echo 'sshd' if [ —x /usr/local/sbin/sshd ] ; then start) case " $ 1 " in SSHD_PID=/var/run/sshd. pid f i echo "Usage : esac exit 0 '/usr/local/etc/rc . d/sshd $ 0 ( {startl stop}' > & 2 ッケージ・システムでインストールすると、たいていは起 動用スクリプトもインストールされます。手作業でインス トールした場合には自分で起動スクリプトも用意しなくて はなりません。 /etc/rc. local から各種デーモンを起動す る OS の場合は、図 8 の内容を追加します。 各種デーモンごとに起動スクリプトを用意する OS の 場合は、図 9 のような起動スクリプトを作成すればよいで しよう。このスクリプトを置くディレクトリや pid ファ イル、各実行ファイルの場所は OS によって異なるので、 使用する OS に合わせてください。 次に、 RSA や DSA によるユーザー認証用の公開鍵と 秘靆を作成します。鍵の作成には ssh-keygen コマンド を使います。最〒版の OpenSSH は SSHI と SSH2 の 両方に対応しているため、作成する鍵の不頁を一 t オプショ ンで指定しなくてはなりません。表 4 にオプションの引数 と暗号化の不頁、できあがる鍵のファイル名の一覧を示し ます。ログインしたいマシンで使える暙号化方式に合わせ て鍵を作成します。ログインしたいマシンも OpenSSH の場合は、 "—t rsa" で SSH2 の RSA 鍵を作っておけば たいていログインできると思います。 ssh-keygen を実行すると鍵の保存場所を訊かれます。 デフォルトでは $HOME/. ssh になります。このディレ クトリは他人がアクセスできないようになっていなけれは 、ノンヨンを なりません。つまり、ディレクトリのパーご、、 700 にする必要があります。ディレクトリを決めると次 94 表 4 ssh-keygen で作成される鍵の頁とファイル名 引数 rsal rsa dsa SSHI-RSA identity SSH2-RSA id-rsa SSH2-DSA id-dsa identity. pub id-rsa. pub id-dsa. pub はパスフレーズを訊かれます。パスフレーズは秘密鍵とと もに、公開鍵で暗号化された暗号文を解読するのに必要な 情報です。パスフレーズには通常の UNIX パスワードよ り長い文字列かイ吏用できます。よいパスフレーズとは、 、、 10 ~ 30 呈度の長さで、簡単な文章や容易に則でき るものではない文字列 " とされています。パスフレーズは確認のため 2 回入力し ます。ファイルなどには保存されませんが、絶対に忘れた り他人に知られたりしないようにしてください。 2 回間違 わすに同じフレーズを入力すれば、公開鍵と秘密鍵カイ乍成 されます。秘密鍵も他人に読めないよう、自分以、タ ) ハ ミッションは落としておきます。 図 10 は ssh-keygen の実彳列です。ここでは、、 - t rsa' として SSH2 の RSA 公開鍵 / 秘密鍵を作成し、作成さ れた公開鍵の内容を石忍しています。公開鍵は複数行にわ たって表示されていますが、実際は 1 行です。 最後に、作成した公開鍵をログインしたいマシン , 、、登録 します。登録するディレクトリは $HOME/. ssh です。そ のディレクトリの authorized-keys2 というファイルに UNIX MAGAZINE 2003.7

8. UNIX MAGAZINE 2003年7月号

連載 / UN Ⅸの道具箱ーの 図 6 ホスト認証の手順 クライアント ①接続要求 - 3 受信した鍵がデータベース のものと同じかを確認 サーバー ②ホストの公開鍵を送イ 4- 4- ④共通鍵を交換 ( 以後の 通信は暗号化される ) 同じかな ? ホスト公開鍵 データベース 後の通信に使える暗号化方式の不頁が多く、より安全な通 この情報をもとに次の照合がおこなわれます。 信が可能という点です。なお、プロトコル 1 とプロトコ 3. ホスト公開鍵を受け取ったクライアントは、自分がもっ ル 2 には互換生がありません。したがって、通信の際に ているデータベースを用いて照合します。データベース はローカルのマシンとログイン先のマシンの SSH のバー には過去に接続した言 t 算機のホスト公け艀建のリストがあ ジョンをよく石忍する必要があります。 ります。このリストと送られてきたホスト公開鍵を上肆交 し、変更されていないことを石忍します。 SS Ⅱでの認証の仕組み もし以前とホスト公開鍵が違っていれば、現在接続し ている相手は、、なりすまし " をしている可能陸がありま SSH での認証のイ目みを説明します。 SSH での認証に す。初めて接続するホストの場合は、データベースにそ は、、ホスト言正 " と、、ユーサー認証 " の 2 段階があります。 のホストの公開鍵がありませんから、データベースにホ 順番にみていきましよう。 スト公開鍵を登録します。 4. ホスト公開鍵が正しいものであ川ま、共通多音号に用い ホスト認証 る鍵を交換します。そして、これ以降の通信は共通多音 SSH での接続を試みると、接続先のサーバーとのあ 号方式による暙引ゞおこなわれます。共 j 建の交換方 いだでます計算機どうしの認証がおこなわれます。これ 法は SSHI と SSH2 で異なります。 を、、ホスト認証 " といいます。ホスト認証はローカルホス SSHI ではクライアントか共 j 建を生成します。そして トから接続先のリモートの言 t 算機に対して、、、本当に自分 サ→ヾーのホスト公開鍵を用いて暗号化し、サーバーに か接続したい計算機なのか " を確認するためにおこなわれ 送信します。サーバーはホスト秘密鍵を使って復号する ます。 ことで共通の鍵か碍られます。 これは、、、 SSH で接続されると思われる計算機になり SSH2 では、 Diffie-Hellman の Key assignment に すまし " て SSH のアクセスを受け付け、ユーサー情報を よりサーバーとクライアントで共通の鍵を得ます。 盗むという攻撃などから身を守るために有効です。 ホスト認証の手順を図 6 に示します。 ユーザー認証 ホスト認証カ鮗ると、続いてユーザー認証がおこなわれ 1. ます、クライアントが SSH による接続要求をおこない ます。ューザー認証とは、通常のログインのときと同様 ます。 に、、ユーザーがその計算機にログインする権限があるか " 2. 接続要求を受けたサーバーは、ホスト認証用の、ホスト の確認てす。 公開鍵 " をクライアントに送ります。ホスト公開鍵には IP アドレス ( もしくはホスト名 ) の情報カ咐いており、 SSH でのユーザー認証の方法は複数あり、 SSHI と 90 UNIX MAGAZINE 2003.7

9. UNIX MAGAZINE 2003年7月号

連載 / IJN Ⅸの道具箱ーの 図 27 sftp によるファイル交換 localhost% sftp remotehost Connecting tO remotehost Enter passphrase for key '/home/local/hoehoe/. ssh/id— sftp> Is ー 1 drwxr—xr—x 0 65533 512 May 4 15 : 14 0 0 512 Apr 13 02 : 42 drwx ー 0 65533 512 May 4 15 : 09 . ssh 0 65533 44056 May 4 15 : 11 genkou . tex sftp> get genkou. tex 100 % 43KB 389 .2KB/s genkou. tex sftp> exit localhost% 0 0 0 0 00 : 00 s 代 p によるファイル交換 の手段としてもっともよく使われている SSH について、 その仕組みを説明し、フリーの実装である OpenSSH と OpenSSH では scp に加えて、 sftp というコピー コ・ - マ PuTTY を例に導入の手順を解説しました。さらに、フ ンドも利用できます。 sftp はその名のとおり ftp に SSH ァイルコピー用のコマンドとして OpenSSH の scp と による暙号化を加えたもので、 get や put など、 liltftp sftp 、 PuTTY の pscp. exe と psftp.exe の使い方を簡 と同様のユーザー・インターフェイスを備えています ( 図 単に紹介しました。 27 ) 。ただし、リモートホスト側で SFTP サーバーカ起 パスワードを盗聴されてしまうと、自分のアカウントが 動していなけれは、なりません。 OpenSSH では、 sshd の 盗まれるだけでなく、さらなるクラックの踏み台にされて 成疋ファイルに次の 1 行を書いておけは、接続要求があっ しまうおそれがあり、たいへん危険です。そのような危険 たときに自重加勺に起動されます。 を避け、自分の計算機やリモートの言 t 算機の安全を守るた /usr/libexec/sftp—server Subsystem sftp めにも、ぜひ SSH の利用をお勧めします。 次回は、 ssh-keygen といった SSH の付属コマンドや、 PuTTY にも psftp.exe という sftp 相当のコマンドが ホート・フォワーディングなど、 SSH をもうすこし便利 ありますが、 pscp. exe 凵羸 GUI のインターフェイス に使うガ去などを紹介します。 はなく、コマンド・プロンプトからの利用になります。 ( なかやま・たかお奈良先立物斗 ! 判支術大完大学 ) ☆ 今回は、盗聴やデータ改竄などの攻撃から身を守るため ( 応募者多数の場合は抽選といたします。なお、当選 者の発表は発送をもって代えさせていただきます ) 。 今後ともこ愛読のほど、よろしくお願い申し上げま UNIX MAGAZINE 編集部 す。 読者アンケートのお知らせ 弊誌をこ愛読いただき、ありがとうこざいます。 今後の企画・編集の参考とするため、読者アンケー トを実施いたします。下記の Web ページにアクセスの うえ、必要事項をこ記入ください ( 締切は 2003 年 7 月 1 7 日です ) 。皆様からお寄せいただいたこ意見は、貴 重な資料として活用させていただきます。 こ回答をお寄せいただいた皆様のなかから、 5 名様 に特製 QUO カード ( 2 , OOO 円ぶん ) をさしあげます ( デザインは変更されることがあります ) ( 株 ) アスキー UNIX MAGAZINE 読者アンケート専用 IJ 日 L http://mkt.uz.ascii.co.jp/unixmag/ こ注意 . 雑誌公正競争規約の定めにより、この懸賞に当選された方は、本号のほかの懸賞に入選できない場合があります。 10 圓 翩ー Sh(9S. net autO PC 101 UNIX MAGAZINE 2003.7

10. UNIX MAGAZINE 2003年7月号

連載 / UN Ⅸの道具箱ーの 図 14 OpenSSH でローカルホストにログイン 1 2 3 4 5 6 7 8 9 10 11 12 10Ca1 五 ost % slogin localhost The authenticity of host 'localhost ( : : 1 ) ' can't be established. RSA key fingerprint is a9 : 8e : 9b : a4 : f4 : 39 : 4f : f9 : 10 : cO : 68 : 75 : 60 : 94 : lb : 7d. Are you sure you want tO continue connecting (yes/no) ? yes Warning : Permanent1y added ) localhost ' (RSA) to the list of known hosts. NetBSD 1 .6R (BASS) # 11 : Wed Apr 9 15 : 55 : 26 JST 2003 Last login: Sun Apr 13 01 : 52 : 09 2003 from 10Ca1 ost Enter passphrase for key ' / ome / 10Ca1 / 五 oe oe /. ssh/id-rsa' localhost% We1come to NetBSD ! 図 15 netstat て。確認、 Active Internet6 connections Proto Recv—Q Send—Q Loca1 Address tcp6 tcp6 0 0 0 localhost . ssh 0 localhost .49511 Foreign Address localhost .49511 localhost . ssh (state) ESTABLISHED ESTABL I SHED います。作成した公建 id-rsa. pub をログインしたい計 算機に ftp などで沖幻医し、次のようにします。 sshd-host% ssh—keygen —i —f id—rsa. pub > > \ ~ / . ssh/authorized—keys2 —i の後ろの、、 - f id ー rsa. pub " で変換したい鍵のファイ ル名を指定します。結果は標準出力に出力されるので、リ ダイレクトを使って authorized-keys2 に追加していま す。 これで PuTTY のほうの準備も整いました。 SS Ⅱでのログイン いよいよ SSH を使ってのログインです。ここでもクラ イアントに OpenSSH を使った場合と PuTTY を使った 場合の例をみていきます。最初に、ログイン先のホストで sshd か起動されていることを忘れすに石忍してください。 OpenSSH の場合 さきほどローカルホストに公開鍵を当求したので、ロー カルホストにログインしてみます ( 図 14 ) 。この図では、 説明のために行番号を付けています。 初めてログインする計算機の場合、 2 ~ 4 行目のように ホスト公け巒建を当求するかと、れるので、、、 yes" と答え ます。すると、ホスト公開鍵が登録されます。登録先は $HOME/. ssh/known-hosts です。 UNIX MAGAZINE 2003.7 図 16 PuTTY て一を指定する カテゴリ 0 : 曰セッション ロギング 三端末 キーポード ベル 特徴 ~ - ウインドウ 外 拆る舞い 変換 色 ・・ Proxy ~ Telnet RIogin 三一 SSH 米 Pu1TY 設定 梠続 ハグ トンネル 礙正を管理するオプション 認証方法 广 1 か OryptoO 確砒正を試みる 3H1 ) ( 迎 を琩正のたプライベートキファイル ( K ) 「でユサ名変更の試みを認める ( リ ) 广工ジェントフォワーディングを忍める ( E ) 認証パラメタ 立豫 e 池 d 断朝認証を試みる s ) 次に、登録したことを示すメッセージが表示されます ( 5 行目 ) 。 2 度目以降のログインの場合は、送信されたホ スト公開鍵が known-hosts にあるかどうかか不忍されま す。 6 行目でソヾスフレーズを入力します。入力したパスフレ ーズが正しけれはログインか成功し、 7 ~ 12 行目のように ログイン・メッセージに続いてプロンプトか表示されます。 netstat コマンドで市寉認すると、 SSH で接続されてい ることが分かります ( 図 15 ) 。 97