ssh (Secure Shell) FAQ - Frequently asked questions by Thomas Koenig< Thomas.Koenig@ciw.uni-karlsruhe.de> $Date: 1997/06/06 20:14:08 $ Translation to Japanese by YAMANE Shinji and Tsuchiya Masatoshi June 1998 [1997年11月に fj.comp.security,fj.archives.answers に投稿した日本語訳を 更新したものです。なお、翻訳の質については無保障です。] _________________________________________________________________ これは Secure Shell, ssh に関してよく尋ねられる質問(と正しいと期待され る返答)のリストです。 _________________________________________________________________ 1. Meta-questions * 1.1 どこでこの文書を入手できますか? * 1.2 この文書に関する質問や訂正はどこに出せばいいですか? 2. ssh の基礎 * 2.1 ssh って何ですか? * 2.2 どうして ssh を使うべきなのでしょうか? * 2.3 ssh はどのような攻撃を防御しますか? * 2.4 ssh はどのような攻撃を防御しないのですか? * 2.5 どのように作動するのですか? 3. ssh の入手とインストール * 3.1 ssh の最新バージョンは? * 3.2 合法的に ssh を使えますか? * 3.3 ssh の商業利用はどうなんですか? * 3.4 どこで ssh を入手できますか? * 3.5 どのようにしてインストールするのですか? * 3.6 UNIX で ssh をroot権限なしにインストールすることは意味がありま すか? * 3.7 どこでヘルプを得ることができますか? * 3.8 UNIX以外のオペレーティングシステムはどんなバージョンがあります か? * 3.9 ssh の管理についてはどうなんでしょう? 4. ssh の応用 * 4.1 backups を ssh で使うことができますか? * 4.2 転送速度を向上するために、暗号化を抑制しても良いでしょうか? * 4.3 firewall を越えた通信に ssh が使えますか? * 4.4 ssh 上で rdist が使えますか? * 4.5 ssh によって、2つのサブネット間で Internet を経由して安全な通信 を行なうことができますか? * 4.6 ssh を使って、NFS や NIS などの UDP 上のサービスを安全にするこ とができますか? * 4.7 SGI GL の接続を ssh によって転送できますか? * 4.8 ftp や POP などのサービスを安全にするために ssh が使えますか? * 4.9 ssh は Socks firewall を越えた通信に使えますか? * 4.10 ssh は AFS/Kerberos をサポートしますか? 5. 問題 * 5.1 ssh を使って他のホストで X のクライアントを走らせることが出来ま せん。 * 5.2 Solaris で、"Resource temporarily unavailable" とエラーが生じま す。 * 5.3 Solaris 2.5 で sshd がハングアップします。 * 5.4 Linux の iBCS2 エミュレーター上で SCO 形式のバイナリを動作させ た場合、X11 の通信が転送されません。 * 5.5 multi-homed host に対して ssh が誤動作します。 * 5.6 ユーザーIDの変換が AIX でうまくいきません。 * 5.7 ssh-keygen が Alpha OSF でコア・ダンプします。 * 5.8 ssh-keygen が Solaris または SunOS でコア・ダンプします。 * 5.9 Linux で libc.so.4 を使うとコンパイル・エラーが出ます。 * 5.10 X の認証が時々失敗します。 * 5.11 .rhosts の指定を無視して、ssh がパスワードを要求します。 * 5.12 ssh が "Secure connection refused" のエラーでループします。 * 5.13 ssh-agent が rxvt で使えません。 * 5.14 X の認証が常に失敗します。 * 5.15 複数の TCP 転送を扱うと ssh がハングします。 * 5.16 remote host denied X11 forwarding というエラーの意味は? * 5.17 ssh を使っているのに、平文の通信が行なわれています! * 5.18 RSAREF に問題があって、かなり多くのビットを扱えません。 * 5.19 アセンブラーのエラーでコンパイルが失敗します。 * 5.20 Solaris 2.5 で、コンパイルが失敗します。 * 5.21 ssh の接続が突然終了します。 * 5.22 ssh による接続が root として転送されています! 6. その他 * 6.1 セキュリティ上のバグの存在が知られている ssh のバージョンはあり ますか? * 6.2 ssh の利用はどれくらい広まっていますか? * 6.3 ssh の商業的側面が好ましくない。 * 6.4 謝辞 Appendix: 訳者付記: 日本語文献リスト 稲村 雄 「暗号ツールを使う」 隔月刊『OPEN DESIGN』(CQ出版) No.18,19 に連載。 Linux での ssh-1-2.17 のインストール&使用説明があります。パッケ ージのPGP署名を確認するところから丁寧に説明してあります。 荒木 靖宏 「安全な遠隔ログインは、otpとsshで」 隔月刊「LINUX JAPAN」Vol.5(1997), Laser5出版局 Camillo Saers 「トランスポート層プロトコルSSHが可能にする安全な遠隔ログ イン」 『月刊ドクター・ドブズ・ジャーナル日本版』1998年2月号, 翔泳社 Data Feloows Ltd.のプロダクトマネージャによる解説です。付 録CD-ROMには、90日間使用可能な Windows95/NT用の F-Secure SSH ク ライアント体験版が収録されています。 中村 正三郎「BRAVO! LINUX 第5回」 隔月刊「LINUX JAPAN」Vol.6(1998) 島 慶一「UNIX知恵袋」39 UNIX Magazine. Vol.13#6, June.1997, ASCII, pp. 41-48 _________________________________________________________________ 1. Meta-questions 1.1 どこでこの文書を入手できますか? この文書の最新バージョンは、 http://www.uni-karlsruhe.de/~ig25/ssh-faq/ にあります。 また定期的に comp.security.misc, comp.security.unix, sci.crypt, comp.answers, sci.answers そして news.answers の Usenet newsgroups に投 稿されます。これは PGP でサインされ、 ftp://rtfm.mit.edu/pub/usenet/news.answers/computer-security/ssh-faq や http://www.uni-karlsruhe.de/~ig25/ssh-faq/ssh-faq.faq からも入手できま す。 オリジナルの SGML file は、 http://www.uni-karlsruhe.de/~ig25/ssh-faq/ssh-faq.sgml から入手できます 。 またGZIP圧縮されたポストスクリプト式版も、 http://www.uni-karlsruhe.de/~ig25/ssh-faq/ssh-faq.ps.gz からダウンロー ドできます。 もしもドイツへの通信速度が遅いようでしたら、 http://aleph1.mit.edu/ssh-faq/ の方が早くつながるかもしれません。 興味があれば ssh home page http://www.cs.hut.fi/ssh/ も御覧下さい。 [訳注: 日本語訳は http://www.vacia.is.tohoku.ac.jp/~s-yamane/FAQ/ssh/ にて公開しています。] 1.2 この文書に関する質問や訂正はどこに出せばいいですか? 以下の保守担当に送って下さい。 Thomas.Koenig@ciw.uni-karlsruhe.de [訳注:日本語訳に関しては s-yamane@vacia.is.tohoku.ac.jp まで。] _________________________________________________________________ 2. ssh の基礎 2.1 ssh って何ですか? README ファイルによれば: ssh (Secure Shell) はネットワークを介してコンピュータにログインするプロ グラムで、遠隔地のマシンでコマンドを実行したり他のマシンへファイルを移 したりするために使われます。ssh は強力な認証と安全ではない経路を通じて の安全な通信を提供します。ssh は rlogin(リモートログイン), rsh(リモート シェル), そして rcp(リモートファイルコピー) の代わるものとして意図され ています。 加えて、ssh は安全な X 接続と 任意のTCP接続の安全な X フォワーディング を提供します。 2.2 どうして ssh を使うべきなのでしょうか? 伝統的なBSDの「'r' - コマンド」(rsh, rlogin, rcp)は何種類もの異なる攻撃 に対して無防備です。ネットワークを介して(あるいは回線を介して)マシン にroot でアクセスすることは、システムへの多数の方法での無権限アクセスを 増加させかねません。あなたのシステムへの(そしてあなたのシステムからの) トラフィックをパスワード(ssh はそのまま送るようなことはしない)まで記録 するような人物ならば、それができるのです。 X Window System もまた幾つかの深刻な脆弱さを抱えています。 ssh によって 、あなたは安全な遠隔地からのX接続をユーザーには透明なままで実現できます 。副次効果として、ユーザーにとって Xクライアントの遠隔操作がより便利に なります。 ユーザーはそれまでの .rhosts や /etc/hosts.equiv ファイルを、そのまま ssh に使うことができます。遠隔地のサイトが ssh をサポートしていなかった 時のために、rsh へのフォールバック(代替)機構があります。 2.3 ssh はどのような攻撃を防御しますか? ssh は以下の防御をおこないます: IP 偽装 リモートホストがパケットを他の信頼できるマシンから来たかのように 偽装するときに用います。 ssh はローカルネットワーク上の偽装者が あなたのルータの外から来たかのようになりすますことも防御します。 IP ソースルーティング ホストがIPパケットを他の信頼できるホストから来たかのように偽装し ます。 DNS 偽装 アタッカーがネームサーバーの記録を偽造する時に用います。 傍受 途中のホストで平文パスワードなどを傍受します。 データ操作 途中のホストを操作してデータを操作します。 X 認証の偽造 X 認証データを傍受して X11サーバとの偽装接続を用います。 言い替えれば、ssh はインターネットを信用していません。敵意ある者がネッ トワークを乗っ取れば ssh 接続を切ることはできますが、トラフィックを解読 復元したり接続を乗っ取ることはできません。 上記のことはあなたが暗号を実際に用いることによってのみ実現できるのです 。ssh は暗号を使わないオプションも持っていますが、これはただのデバッグ 用なので、使うべきではありません。 2.4 ssh はどのような攻撃を防御しないのですか? ssh はあなたのホストのセキュリティを危険にさらすようなことはしないでし ょう。しかし、ひとたびアタッカーがマシンへの root アクセスを得れば、彼 は ssh をも駄目にしようとしかねません。 もし悪意ある何者かがあなたのホームディレクトリにアクセスすれば、セキュ リティはありえません。あなたのホームディレクトリがNFSで共有されていれば なおさらです。 2.5 どのように作動するのですか? 詳しい情報は、sshディレクトリの README や RFC ファイルにあります。提案 された RFC は Internet Draft として入手できます。 [訳注: Internet Draft は更新されました。 * IETF Transport Layer Security (tls) Worling Group による Internet Draft "draft-ietf-tls-ssh-00.txt"は期限切れになりました(TLSは、SSL をベースにしたものになる模様です)。 * IETF Secure Shell (secsh) Worling Group では、現在、SSH2 protocol について討議がすすめられています。 最新版は 7 November 1997 に出さ れた以下のドラフトです。 + draft-ietf-secsh-architecture-01.txt + draft-ietf-secsh-transport-03.txt + draft-ietf-secsh-connect-03.txt + draft-ietf-secsh-userauth-03.txt これらは、ftp.ietf.org のミラーサイトの他に、SSH Network Protocol Development http://www.ssh.net/ からも入手できます。 ] すべての通信はIDEAやその他の暗号法(トリプルDES, DES, RC4-128, TSS, Blowfish)で暗号化されます。暗号鍵はRSAを使って交換され、交換鍵に用いら れたデータは毎回破棄されます(暗号鍵はどこにも保存されません)。RSAホスト 認証を使う際には、各ホストは認証用にRSA鍵を持ちます。暗号化は IP偽装を 防御するのに用いられ、公開鍵認証はDNS偽装やルーティング偽装を防御するの に用いられます。 RSA鍵はホストの認証にも用いられます。 _________________________________________________________________ 3. ssh の入手とインストール 3.1 ssh の最新バージョンは? 最新バージョンは 1.2.20 です. [訳注:その後、 ssh-1.2.26(PGP Signed in 1998/07/08 16:43 GMT)が公開さ れました。 最新のものを確認するようにしてください。 ] 現在 ssh は UNIXまたは互換システムや、OS/2で動作します。すべての"主流 の"UNIXシステムへの移植が成功しています。MS-Windows には二つのバージョ ンが存在します。Cedomir Igaly によるフリーのβバージョン がhttp://public.srce.hr/~cigaly/ssh/ や 、ftp://hotline.pvt.net/pub/win_utils/winsock/ssh/のミラーから入手でき ます(ミラーの方が接続しやすいでしょう)。 ssh の原著者である Tatu Yloenen による商品版もあります。Mac用のβバージ ョンも Datafellows から入手可能です。 3.2 合法的に ssh を使えますか? ssh 1.2.20 の UNIXバージョンは自由に配布して構いません。しかし分割した り、別製品の一部にして商品として売ってはいけません。あるいは、その他の 個別のライセンスなしの経済的利益にも用いてはいけません。 ssh の初期のバージョンはライセンスが制限されていません。ソース配布物に 添付してある COPYING ファイルを読んで下さい。 Tatu Yloenenの ssh MS-Windowsバージョンは商品用製品であり、ライセンスが 必要です。 幾つかの国、特にフランス、ロシア、イラク、パキスタンでは、特別の許可が ない限りあらゆる暗号利用は違反になりえます。 もしもあなたがアメリカ合衆国にいるのでしたら、ssh がどこでも公開されて 入手できる情報を使って合衆国の外で書かれたということに気をつけなければ なりません。合衆国政府は、いったん輸入されたこのソフトウェアを ftpサイ トに置くなどしてアメリカから輸出することを、犯罪的な攻撃だとみなすかも しれません。詳しい情報は Office of Defence Trade Controls に尋ねて下さ い。 ssh に用いられている RSA と IDEA のアルゴリズムは、合衆国を含む別々の国 々で特許が主張されています。RSAREF ライブラリへのリンクはできますが、合 衆国内で ssh を非商業目的に使うことは合法にも違法にもなりえます。IDEAの 商業利用はライセンス獲得する必要があるでしょう( ssh は IDEA 無しでも動 作するように設定できます)。 詳細は、ssh ソース配布物の COPYING ファイルを参照して下さい。 ソフトウェア特許に関する一般的な情報は、プログラミング自由連盟のホーム ページ http://lpf.org/ を参考にして下さい。 [訳注: LPFのFTPサイトftp://prep.ai.mit.edu/pub/lpfも参考になります。] 3.3 ssh の商業利用はどうなんですか? ssh は Unix 環境のもとで無料で入手できました。そしてほぼ確実にそれは未 来でも受け継がれるでしょう。 ssh の 原著者である Tatu Yloenen は、ssh の有料サポートと有料ライセンス を提供する SSH Communications Security Ltd. という会社をはじめました。 この会社は ssh のライセンスについての唯一の仲介者である Data Fellows と 共同で業務を行っています。さらに多くの情報が http://www.europe.datafellows.com/ や http://www.ssh.fi/ にて入手できま す。 [訳注: 日本では(株)山田洋行 http://www.Europe.DataFellows.com/japan/f-secure/ が扱っています。] 3.4 どこで ssh を入手できますか? sshを配布する 一次サイトは、 ftp://ftp.cs.hut.fi/pub/ssh/ です。 公式リリースは、PGPで以下の鍵IDによってサインされています。 DCB9AE01 1995/04/24 Ssh distribution key Key fingerprint = C8 90 C8 5A 08 F0 F5 FD 61 AF E6 FF CF D4 29 D9 最新の開発バージョンは、 ftp://ftp.cs.hut.fi/pub/ssh/snapshots/ にて入 手できます。 ssh は 以下の 匿名ftpサイト からでも入手できます。 オーストラリア: ftp://coombs.anu.edu.au/pub/security/tools チリ: ftp://ftp.inf.utfsm.cl/pub/security/ssh フィンランド: ftp://ftp.funet.fi/pub/unix/security/login/ssh ドイツ: ftp://ftp.cert.dfn.de/pub/tools/net/ssh ハンガリー: ftp://ftp.kfki.hu/pub/packages/security/ssh アイルランド: ftp://odyssey.ucc.ie/pub/ssh ポーランド: ftp://ftp.agh.edu.pl/pub/security/ssh ポルトガル: ftp://ftp.ci.uminho.pt/pub/security/ssh ロシア: ftp://ftp.kiae.su/unix/crypto スロヴェニア: ftp://ftp.arnes.si/security/ssh イギリス: ftp://ftp.exweb.com/pub/security/ssh アメリカ合衆国: ftp://ftp.net.ohio-state.edu/pub/security/ssh アメリカ合衆国: ftp://ftp.gw.com/pub/unix/ssh [訳注: 日本では、以下のサイトから入手できます。 * ftp://ftp.kyoto.wide.ad.jp/pub/security/ssh/ * ftp://ftp.win.or.jp/pub/network/security/ssh/ * ftp://ftp.riken.go.jp/pub/security/ssh/ ] 幾つかのミラーサイトには最新のスナップショットがないこともあります。 3.5 どのようにしてインストールするのですか? ファイルをあなたにネットワーク的に近いサイトからGETして、次のように展開 します。 gzip -c -d ssh-1.2.20.tar.gz | tar xvf - そしてssh-1.2.20 ディレクトリに移り、INSTALL ファイルを読んでそこにある 説明書を手本にして下さい。 3.6 UNIX で ssh をroot権限なしにインストールすることは意味がありますか? ssh バイナリをインストール後に実行すれば、sshd が作動している他のシステ ムにログインすることができます。 もしパスワードをタイプすること無しに遠隔システムにログインしたい場合に は、ssh -keygen を使ってあなたのプライベート鍵を生成し、あなたの公開鍵 を $HOME/.ssh/authorized_keys に置かなければなりません。 sshd を root以外の人が起動させることもできます。割り当てられたポート以 外(>1024)を指定する -p オプションを使って、 ssh -p で他のシステムに接続 します。これはあなたのアカウントにのみ接続可能で、また sshd は(標準にし たがって)あなたのマシンがリブートするまでリスタートされません。 あとは、この方法があなたにとって便利か否か判断してください。 3.7 どこでヘルプを得ることができますか? まず最初に、ドキュメンテーション、このドキュメント :-)、そして http://www.cs.hut.fi/ssh/ . の ssh home page を読みましょう。 ユーザーのためには、 http://www.tac.nyc.ny.us/~kim/ssh/ にイントロダク ションがあります。 [訳注:日本語訳「sshの使い方(訳)」がやざき ひろゆき氏によって公開されて います。] もしもこれらの材料が手助けにならなかったら、Usenet newsgroup comp.security.ssh に投稿したり、ssh ユーザーのためのメーリングリスト ssh@clinet.fi にメールをおくることができます。 申し込みは 、majordomo@clinet.fi に subscribe ssh という本文のメールを送ります。 申し込む前に、http://www.cs.hut.fi/ssh/ssh-archive にある メーリングリ ストのアーカイブを見ておいたほうがいいでしょう。 [訳注: 日本語でsshについて情報交換するMLが運営されています。 majordomo@dream.egg.or.jp に 本文 subscribe ssh-jp だけのメール を送る と登録されます。 (MLの投稿アドレスは ssh-jp@dream.egg.or.jp です) ] 3.8 UNIX以外のオペレーティングシステムはどんなバージョンがありますか? Heikki Suonsivu (hsu@clinet.fi) と Michael Henits (moi@dio.com) は 、MS-Windows や MacOS で フリーに再配布できる初のバージョンに100 US$ を 賞金として提供しました。 Cedomir Igaly による MS-Windows への 仮のバージョンがあります。残念なが ら、もはやそれは入手できそうにありません。 archie で ssh-1-2-.zip とい うファイル名を探してみてください。 [訳注: PC-TCPIP-FAQ-J http://www.naoe.hiroshima-u.ac.jp/staffs/hirata/pc-tcpip/s_auth.htm#ss hにも win32対応のsshが紹介されています。 C.Igary の SSH client については、SSH-FAQ 「3.1 ssh の最新バージョンは?」 の項目でも言及されています。 Macintosh用のクライアントとしては、ftp://emugw.emu.co.jp/pub/BetterTelnet にて Better Telnet の日本語版が公開されています。] ssh の原著者 Tatu Yloenen による有料バージョンは、以下から入手可能です 。 http://www.europe.datafellows.com/f-secure/fssh-reg.htm . [訳注: 日本では(株)山田洋行 http://www.Europe.DataFellows.com/japan/f-secure/ が扱っています。 SSH-FAQの 6.3 ssh の商業的側面が好ましくない。 も参照して下さい。 ] Bernt.Budde@udac.uu.se は Mac への移植にとりかかっています。 VMS への移植は、Mark Martinec (Mark.Martinec@nsc.ijs.si) によって進めら れています。 OS/2 への移植版は以下から入手できます。 ftp://ftp.cs.hut.fi/pub/ssh/os2/ . ssh の OS/2版のための専用メーリングリストがあります。申し込むには 、majordomo@clinet.fi に subscribe ssh-os2 という本文の電子メールを送って下さい。 [訳注: UCバークレー大学の ISAAC グループは、US Robotics製の携帯端末 Palm Pilotに Top Gun ssh を移植しました。 http://www.isaac.cs.berkeley.edu/pilot/ ] 3.9 ssh の管理についてはどうなんでしょう? ssh を管理する際の主要な問題は、ホスト鍵の管理です。クライアントがRSAホ スト認証を使ってリモートホストに接続できるには、サーバーがクライアント の公開鍵を知っている必要があります。 これらの公開鍵を毎晩自動的に集めるツールとして、 make-ssh-known-hosts.pl ( ssh ソース配布物と一緒に配布されている)や、 ftp://cag.lcs.mit.edu/pub/dm/ (あるいは ftp://ftp.cs.hut.fi/ssh/contrib/ からも入手できます) にある、より高速な ssh-keyscan があります。 Thomas Koenig はこれらのユーティリティーの一方による出力を処理するスク リプトを書きました。新しい暗号鍵をチェックし、鍵を換えたホストについて 警告し(攻撃されている兆候かも知れません)、完成された新しいファイルを生 成します。このスクリプトは、 http://www.uni-karlsruhe.de/~ig25/ssh-faq/comp-host-list から入手できま す。 これらのユーティリティを使って、規則的手続きに基づいた公開鍵の検証をす るスクリプトを書くことができます。(これらのユーティリティの守備範囲 で)ssh を動作させる新しいマシンができたり、誰かが公開鍵を換えたら、攻撃 されていないかを当人に直接確認するのもよいでしょう。 fingerprint 機構(PGP fingerprint と同等の)がこれを簡単にすべく提案され ており、おそらく次のリリースには実装されるでしょう。 _________________________________________________________________ 4. ssh の応用 4.1 backups を ssh で使うことができますか? はい、できます。 ssh は rsh を残したまま置き換えることができますから、 バックアップスクリプトを作動できます。もしあなたが rdist を使っているの なら、以下を見て下さい。 できます。ssh は rsh を置き換えますので、backup 用の script はそのまま 動くでしょう。rdist を使っている場合は、下記を参照してください。 4.2 転送速度を向上するために、暗号化を抑制しても良いでしょうか? いいえ、セキュリティ上の理由から、暗号化するように設定しておくべきです 。 最近の CPU は十分に速いので、転送速度が低下するとしても、Ethernet によ る LAN の転送速度よりも下がることはありません。 もしも、処理速度を向上させたいならば、デフォルトの IDEA とは別の暗号を 使うように -c オプションで指定するべきです。 Linux の走っている P5/90 のマシンと 486/100 のマシンの間をあまり負荷の 掛かっていない状態の Ethernet でつないだ場合の scp の転送時間を、暗号化 の方法を変えて測定してみました。 転送時間を表す式として t=a+x/b を選びました。a は転送開始処理にかかる時 間を秒単位で表し、b は信頼できる転送速度を kB/s 単位で表します。さらに 、gnuplot( pre-3.6 version )に実装された Levenberg-Marquardt アルゴリズ ムに基づいて、68.3% の信頼区間を得られました。 暗号法 a[s] da[s] b[kB/s] db[kB/s] なし 2.37 0.37 386.1 5.8 rc4 1.96 0.27 318.2 2.9 tss 2.33 0.37 298.5 3.5 des 2.07 0.19 218.8 1.0 idea 2.25 0.45 169.6 1.3 3des 1.92 0.11 118.2 0.2 非常に負荷がかかっている状態の Ethernet では、rc4 暗号と圧縮を同時に 用 いると rcp よりも速く転送されました。 もし、あなたが通信を暗号化しない ならば、r 系のコマンドを使っている場合同様、攻撃には無力です。それなら 、あなたは ssh を使う意味はないでしょう。 4.3 firewall を越えた通信に ssh が使えますか? はい。ssh は安全な TCP forwarding を提供しますので、firewall を越えて TCP forwarding を利用できるでしょう。 4.4 ssh 上で rdist が使えますか? 6.1.0 以前の rdist にはバグがあるので、ssh 上で使うことはできません 。6.1.1以降の rdist は動作するでしょう。 rdist を使う場合、コンパイル時に ssh のパスを指定することを忘れないで下 さい。または、-P オプションによって rsh ではなく ssh を使うように指定し て下さい。 6.1.2 か 6.1.3 のバージョンの rdist の password authentication 機能を利 用している場合、以下のパッチを当てて下さい。 --- src/rshrcmd.c.orig Tue Jun 11 16:51:21 1996 +++ src/rshrcmd.c Tue Jun 11 16:52:05 1996 @@ -63,7 +63,7 @@ /* child. we use sp[1] to be stdin/stdout, and close sp[0]. */ (void) close(sp[0]); - if (dup2(sp[1], 0) < 0 || dup2(0,1) < 0 || dup2(0, 2) < 0) { + if (dup2(sp[1], 0) < 0 || dup2(0,1) < 0) { error("dup2 failed: %s.", SYSERR); _exit(255); }

このパッチはまた、"Warning: Denied agent forwarding because the other end has too old version."という警告にも対応しています。 (この警告は 、1.2.17 以降のクライアントを利用して、1.2.17 以前のサーバーに 接続した 場合に発生します) rdist の代わりに rsync を使ってもいいでしょう。rsync は、ssh 上で動作す る ように設計されていて、バンド幅を効率良く使います。より詳しい情報は ftp://samba.anu.edu.au/pub/rsync または ftp://sunsite.auc.dk/pub/unix/rsyncで見つかるでしょう。 4.5 ssh 使って、2つのサブネット間で Internet を経由して安全な通信を行なうことが できますか? 通常の ssh による接続を通して PPP を動作させることができます。実際に動 いている例については、http://www.inka.de/~bigred/sw/ssh-ppp-new.txt を 見て下さい。PPP の圧縮機能を有効にすることは大変良い考えです。 しかし、ssh が利用している TCP の接続と、PPP/ssh を通って転送される TCP 接続の2つが同時に再送信する場合があるので、TCP 接続を転送する時に問 題が生じるかも知れません。このような場合は、UDP による暗号化された IP tunnneling を利用するべきです。利用可能な実装は http://www.inka.de/~bigred/devel/cipe.html で見つかるでしょう。 4.6 ssh によって、NFS や NIS などの UDP 上のサービスを安全にすることができます か? NIS などの RPC を用いたサービスに対する一般的な解決が提供されています。 ftp://ftp.tuchemnitz.de/pub/Local/informatik/sec_rpc/ から取得できます 。 NIS はその一部分として働きます。 原理的には、これは NFS にも適用できるはずなのですが、まだできていません 。 DNS などの純粋に UDP のみに基づいたサービスを ssh で安全にすることも原 理的 には可能なはずですが、まだできていません。 4.7 SGI GL の接続を ssh によって転送できますか? これは実装される予定はありません。GL は、X とは全くことなるプロトコルで 、少なくとも X によって置き換えられるべきです。 X サーバーの拡張として OpenGL が動作している場合は、問題は生じないでし ょ う。環境変数 GLFORCEDIRECT を no に設定する必要があるかも知れません 。 4.8 ftp や POP などのサービスを安全にするために ssh が使えますか? もし、ftp のパスワードを平文で送信することを避けたいならば、ftp の command channel を ssh で暗号化することができます。しかし、data channel は TCP 上 の攻撃にたいして開かれたままなので、firewall を越えて 動作させることはでき ないでしょう。 myhost というホストと ftphost というホストの間に ftp による接続を行なう 場 合、myhost 上で次のようにします。 myhost$ ssh -L 1234:ftphost.do.main:21 ftphost このコマンドによって、あなたは ftphost にログインし、myhost のポート 1234 に対する通信を ftphost に転送させます。 その上で、他のターミナルから、次のようにして下さい。 myhost$ ftp mymachine 1234 220 ftphost FTP server (Foonix 08/15) ready. Name: (myhost:yourname): 331 Password required for yourname Password: 230 User yourname logged in. 接続先の ftp デーモンが command channel が接続されているホストとは違う ホストを指定した PORT コマンドを受け付ける場合、かつ、ローカルの ftp ク ライアントが常に PORT コマンドを使用する場合には、この手法はうまく働き ます。これは、セキュリティの甘い UNIX ftp クライアントと ftp デーモンに は当てはまりますが、より進歩した wu-ftpd のような ftp デーモンではうま くいかないでしょう。 そのようなサーバーの場合、ftp クライアントが passive モードをサポートし ているか、また、ftp サーバーが PASV コマンドを受け付けるか調べてみまし ょう。 POP の場合、Stephane Bortzmeyer (bortzmeyer@pasteur.fr) によってメール とパスワードを ssh によって保護するためのスクリプトが書かれています。そ のスクリプトは既存の POP サーバーとクライアントに変更を必要としません 。ftp://ftp.pasteur.fr/pub/Network/gwpop/ から入手可能です。 その他のサービスも同様な手法によって安全にすることができますが、暗号化 をしない ftp の data connection は、接続の乗っ取りや盗聴に対して依然と して無力です。 4.9 ssh は Socks firewall を越えた通信に使えますか? Socks 5 は 1.2.16 以降の ssh をサポートしています。 4.10 ssh は AFS/Kerberos をサポートしますか? 現在は、ソースに取り込まれていません。AFS に対応させるためのパッチは http://www-personal.umich.edu/~dugsong/ssh-afs-kerberos.htm から入手可 能 です。近々、contrib ディレクトリに取り込まれるでしょう _________________________________________________________________ 5. 問題 もし、あなたの問題が以下に列記されていないならば、 ssh-bugs@clinet.fi 宛に以下の情報を含めたバグ・レポートを送って下さい。 * ssh のバージョン (もしもsshと異なるならば sshd のバージョンも) * あなたが ssh にさせたいこと * ssh の実際の動作 (全てのエラーメッセージを含む) * 使っているシステム (例: uname -a の出力) と、config.guess の出力。 * compile 時の問題の場合は、(configure によって生成された) config.log の内容 * 使用したコンパイラーと全てのコンパイル・オプション * ssh -v の出力 * sshd を sshd -d の debug mode で走らせた時の出力 なお、バグ・レポートを送る前に ftp://ftp.cs.hut.fi/pub/ssh/snapshots/ から最新版を入手して試してみて下さい。 5.1 ssh を使って他のホストで X のクライアントを走らせることが出来ません。 そんなことはありません。 "ssh -f otherhost xclient" とするか、rsh と同 じようにスクリプト中で使いたいならば "ssh -n otherhost xclient &" とし て下さい。 5.2 Solaris で、"Resource temporarily unavailable" とエラーが生じます。 Solaris 2.4 のカーネルのバグです。パッチ 101945-37 を入手して、直して下 さい。それ以前のバージョンのパッチ、少なくとも 101945-36 では、このバグ は直っていませんので注意して下さい。 Solaris 2.5.1 で同様の問題が生じた場合、ssh 1.2.14 かそれ以降のバージョ ンの ssh では問題は解決されていますから、更新して下さい。 5.3 Solaris 2.5 で sshd がハングアップします。 Solaris のシェアードライブラリのコードに問題があり、いくつかのネームサ ーバーを利用する関数を使うとハングします。 パッチ 103187-02 (x86 の場合は 103188-02) を入手して下さい。Solaris 2.5.1 では、この問題は直っているかも知れませんし、直っていないかも知れ ません。 5.4 Linux の iBCS2 エミュレーター上で SCO 形式のバイナリを動作させた場合、X11 の 通信が転送されません。 うまく動作させるには、ホスト名をFQDNで指定する必要があります。いくつか の Linux のディストリビューションでは、ホスト名としてFQDNの最初の部分の みを使っています。 5.5 multi-homed host に対して ssh が誤動作します。 gethostbyname() が、本当に、有り得べき IP アドレスの完全なリストを返し ているか検査して下さい。(例えば、/etc/hosts が優先されるように設定し 、/etc/hosts にアドレスを1つだけ指定すると、うまくいくかもしれません) 5.6 ユーザーIDの変換が AIX でうまくいきません。 これは、APAR IX38941 で報告されている AIX 3.2.5 のバグです。U435001, U427862, U426915 またはそれ以外のいくつかのパッチで修正されています。詳 細 については、IBM の担当者に問い合わせて下さい。 5.7 ssh-keygen が Alpha OSF でコア・ダンプします。 Alpha OSF/1 1.3.2 で、ベンダー提供のコンパイラーに最高の最適化を指示し た時に生じるバグが原因です。 ssh-keygen をコンパイルする時に最適化オプションを指定しないか、gcc を使 って下さい。ただし、Alpha 用の Gcc 2.7.2 には問題があることが知られてい ます。 5.8 ssh-keygen が Solaris または SunOS でコア・ダンプします。 これは、最適化オプションを指定しなかった場合に gcc 2.7.0 が不正なコード を生成するバグです。コンパイル時に、"-O" または "-O -g" オプションを指 定するか、gcc 2.7.2 に更新して下さい。 5.9 Linux で libc.so.4 を使うとコンパイル・エラーが出ます。 これは正しく設定されていない Linux システムが原因です。root になって、 "cd /usr/lib; ln -s libc.sa libg.sa" として下さい。 5.10 X の認証が時々失敗します。 HP-UX 9 の xauth (SR 5003209619) のバグと考えられています。PHSS_5568 の パッ チで修正されているでしょう。 その他のシステムで発生した場合は、詳細を ssh-bugs@clinet.fi . にメール して下さい。 5.11 .rhosts の指定を無視して、ssh がパスワードを要求します。 いくつかの可能性があります。一般的には次のいずれかでしょう。 * クライアントのホスト鍵が known_hosts ファイルに格納されていない場合 。 正式なドメイン名 (通常はFDQN) となっているか注意して下さい。 * クライアントのホストをネームサーバーで逆引き出来ない場合。ssh は、 逆引 きと IP アドレスを得るための通常のネームサービスの双方を必要と します。 * multi-homed なクライアントまたはホストの全ての IP アドレスが DNS に 登 録されていない場合。1.2.12 以前のバージョンにはバグがあって、 multi-homed なホストを扱えないので注意して下さい。 * ユーザーのホームディレクトリまたは ~/.rhosts に対して所有者以外の書 き込み権限が設定されている場合。(サーバーの設定オプション StrictModes を参照して下さい) * ホームディレクトリが NFS 上にある場合、いくつかのマシンでは ~/.rhostsとホームディレクトリが誰でも読めるようになっている必要があ ります。 * root アカウントの場合、/etc/shosts.equiv と /etc/hosts.equiv は無視 され、~/.rhosts または ~/.shosts のみが使われます。 * Rhosts-RSA 認証と RSA 認証が矛盾した場合。 Rhosts-RSA 認証は、r 系コマンドを代替するための機能です。この場合 、sshdは root に suid されている必要があります。更に、クライアント 側に /etc/host_key、サーバー側に適当な公開鍵を含んでいる /etc/ssh_known_hosts が存在し、加えて ~/.[sr]hosts または /etc/[s]hosts.equiv にホスト名が記述されている必要があります。 RSA 認証はユーザー単位の認証で、クライアント側に (ssh-keygen によっ て生成された) ~/.ssh/identity が存在し、サーバー側 の~/.ssh/authorized_keys と一致する必要があります。 5.12 ssh が "Secure connection refused" のエラーでループします。 これは設定のミスです。 ssh はリモート・ホストの ssh デーモンに接続することが出来なかった場合、 r 系のコマンドを利用しようとします。つまり、古い rsh を古いプロトコルで 実行しようとします。 2つの可能性があり得ます。 * ssh を rsh の代替として既にインストールしていて、2回目のインストー ル時に configure を実行する時に --with-rsh=PATH オプションをつけ忘 れたのでしょう。この場合、ssh は rsh を実行しているつもりで自分自身 (または古いバージョンの ssh) を呼び出してしまいます。解決するには 、rsh の正しい場所を与えて ssh を再コンパイルして下さい。 * 古い rsh が正しく呼び出されているが、rsh と rlogin を別のディレクト リに移動している場合。古い rsh には、rlogin のパスをハードコーディ ングしている場合があり、rsh が ssh によって置き換えられた rlogin を 呼び出してしまっていることがあります。 例えば、rsh と rlogin を /usr/old に移動した場合、次のようなスクリ プトを使って rsh を変更して下さい。 perl -pi.orig -e 's+/usr/(bin|ucb)/rlogin+/usr/old/rlogin+g ;' /usr/old/rsh rsh を修正したら、元の rsh を /usr/old/rsh.orig として保存して下さい 。--with-rsh=/usr/old/rsh オプションを指定して、ssh を再調整して下 さい。 5.13 ssh-agent が rxvt で使えません。 rxvt は起動時に、全てのファイル・ディスクリプタを、ssh-agent が使ってい るものも含めて、閉じてしまいます。xterm を使うか、 http://www.cs.hut.fi/ssh/ssh-archive/ にあるメーリングリストの書庫から Timo Rinne による rxvt のパッチを探して下さい。 5.14 X の認証が常に失敗します。 これは、コンパイル前のconfigureの際に xauth プログラムが見つけられなか った場合に起こります。パスを確認して、再configure、再コンパイルを行なっ て下さい。 5.15 複数の TCP 転送を扱うと ssh がハングします。 1.2.13 以前の ssh プロトコルの競合によって発生します。 1.2.14 以降、プロトコルにいくつかの変更が加えられました。不幸なことに、 1.2.14 とそれ以前のバージョンの ssh の間で TCP の転送を行なうと、これら の 変更によってハングしてしまうでしょう。双方の ssh を 1.2.14 以降のバ ージョ ンに更新することを推奨します。 5.16 remote host denied X11 forwarding というエラーの意味は? リモート・マシンで X11 の転送が禁止されている (設定ファイル にForwardX11 No が設定されている場合)か、コンパイル時に xauth コマンド か X11 ライブラリが見つからなかった、という意味です。 5.17 ssh を使っているのに、平文の通信が行なわれています! ssh が動作しているマシンに対する telnet, rlogin または X による通信を検 出している可能性があります。本当に ssh のパケットを見ているのか、確認し て下さい。(例えば、ポート番号を調べて下さい。sshd は22番ポートを使って います 5.18 RSAREF に問題があって、かなり多くのビットを扱えません。 これは、REAREF ライブラリの制限です。ホスト鍵を 896 ビット以下の長さに して下さい。 5.19 アセンブラーのエラーでコンパイルが失敗します。 いくつかのシステムでは、gmp に含まれているマシン語の部分にバグがありま す。 make distclean configure --disable-asm という指定を試してみて下さい。 5.20 Solaris 2.5 で、コンパイルが失敗します。 コンパイル前のconfigureを行なう前に、環境変数 CPP に "cc -E -Xs" と設定 して下さい。 5.21 ssh の接続が突然終了します。 この問題は、SunOS 4, Solaris 2, Linux および HP-UX 9/10 上で 1.2.16 ま たは 1.2.17 を使っている何人かの人から報告されています。ssh の標準入力 を通して scp により大量のデータを転送した場合や、X の通信で大量の画像デ ータ (例えば MPEG movie) をやりとりした場合に生じます。 1.2.16 または 1.2.17 に対しては、以下のパッチを試してみて下さい 。1.2.18 以降のバージョンでは、この修正は組み込まれています。 --- serverloop.c.orig Tue Jan 21 14:38:25 1997 +++ serverloop.c. Tue Jan 21 14:37:54 1997 @@ -405,7 +405,7 @@ buffer_len(&stdin_buffer)); if (len <= 0) { - if (errno != EWOULDBLOCK) + if ((errno != EWOULDBLOCK) && (errno != EAGAIN)) { if (fdin == fdout) shutdown(fdin, 1); /* We will no longer send. */ 5.22 ssh による接続が root として転送されています! クライアントが接続すると、sshd はプロトコルを扱うために子プロセスをフォ ー クし、この子プロセスは更にシェルやコマンドを扱うための2つ目の子プロ セスを 呼び出します。第1の子プロセスは root 権限で動作しているのに対し て、第2の 子プロセスは setuid() によって得られたユーザーの権限で動作し ていることに より生じる問題です。 潜在的な問題として次のような問題があります。-Lx:host:port オプションに よっ てリダイレクトされた接続は、第1の子プロセスによって生成されるので root 権 限で host:port に接続します。従って、標的となっているホストが認 証を要求す る場合、root としての認証しか戻さず、実際のユーザーの認証を 示しません。 これは既にバグとして報告されています。将来のバージョンで修正されるかど うか は未定です。 _________________________________________________________________ 6. その他 6.1 セキュリティ上のバグの存在が知られている ssh のバージョンはありますか? 1.2.12.92 以前の全てのバージョンの ssh では、ローカル・ユーザーがホスト の 秘密鍵を読み出すことが出来るというセキュリティ上の欠点があります 。1.2.13 以降のバージョンでは修正されています。 C2 セキュリティモードの Alpha OSF 1.3 または SCO 上で ssh 1.2.13 を使っ て いる場合、ローカル・ユーザーが root 特権を得ることが出来ます。 ftp://ftp.cs.hut.fi/pub/ssh/ssh-osf1-c2-setluid.patch を使って修正する か、 1.2.14 以降のバージョンに更新して下さい。 いくつかのシステムでは、1.2.17 以前のバージョンの認証エージェントに問題 があり、悪意のあるユーザーが、他のユーザーの信任状を盗む機会があります 。これは 1.2.17 で修正されています。 arcfour 暗号は ssh プロトコルバージョン1を脆弱にしています。従って 、1.2.18 以降のバージョンでは、arcfour 暗号の使用は禁止されました。 [訳注:sh-1.2.21以前のssh-agentにセキュリティホールが みつかりました 。ssh-1.2.22以降のバージョンに更新してください。] 6.2 ssh の利用はどれくらい広まっていますか? フリーに利用できるソフトウェアの常として、これは難しい質問です。現在の 最善 の推計では、40ヶ国の1000以上の施設で利用されているだろう、とされて います。 この推計は、以下の項目に基づいています。 * ssh メーリングリストには、40の異なる国と数百のドメインから600人程度 が 参加しています。 * ssh のホームページには、毎週、大体5000台のマシンからのアクセスがあ りま す。それらの多くは キャッシュ でもあるので、他のマシンも含まれ ています。 6.3 sshの商業的側面が好ましくない。 ssh のプロトコルはフリーで利用できます。他の環境下で利用可能なバージョ ン、 既に存在している ssh の実装と接続可能なバージョンを開発しようとす る時に制 限はありません。 ssh はまた、Internet Standards Track にも従っています。これは、2つ目の 独立した実装が要求されるということです。 2つ目の実装を書き始める前に、特許問題 (RSA, IDEA) と輸出制限に注意する 必要があるでしょう。 [訳注: Internet Draft として提案されたSSHプロトコルを実装して、商用利用 もできるフリーソフトウェア版をつくろうという動きには、例えば http://www.net.lut.ac.uk/psst/ があります。 ] 6.4 謝辞 謝辞の大部分を ssh を作成し公共に使えるようにした Tatu Yloenen に捧げま す。私は、ssh のソースに添付されていた文書から彼の文章の一部分を使いま した。また、この FAQ に彼が加えてくれた訂正に感謝します。 また、ssh メーリングリストと USENET のニュースグループでは次の人々が、 貴重な助言をしてくれました。 Mark Martinec Pedro Melo Michael Soukas Adrian Colley Kenneth J. Hendrickson Adam Hammer Olaf Titz David Mazieres Axel Boldt Wayne Schroeder _________________________________________________________________ YAMANE Shinji Last modified: Thu Jun 4 17:29:04 JST 1998