スポンサーリンク

SSHD(8) FreeBSD システム管理者マニュアル SSHD(8)

名称

sshd − OpenSSH SSH デーモン

書式

sshd [−deiqtD46] [−b ビット数] [−f 設定ファイル] [−g ログイン猶予時間] [−h ホスト鍵ファイル] [−k 鍵の生成間隔] [−o オプション] [−p ポート番 号] [−u 長さ]

解説

sshd (SSH デーモン) は ssh(1) のためのデーモンプログラムです。これらのプ ログラムはともに rlogin と rsh を置き換えるもので、安全でないネットワーク 上にある、2つの信頼されていないホスト間で、暗号化された安全な通信を提供し ます。これらのプログラムはできるだけ簡単にインストールして使えるよう配慮 されています。

sshd はクライアントからの接続を listen しているデーモンです。通常これは ブート時に /etc/rc.d/sshd から起動され、接続を受けつけるたびに新しいデー モンが fork します。 fork したデーモンは、鍵の交換、暗号化、認証、コマン ド実行、そしてデータ交換をおこないます。この sshd の実装では、SSH プロト コルバージョン 1 と 2 を同時にサポートしています。 sshd は以下のように動 作します:

SSH プロトコル バージョン 1

各ホストは、そのホストに固有の RSA 鍵 (通常 1024 ビット) をもっています。 これはそれぞれのホストを識別するのに使われます。加えて、デーモンは起動時 にサーバ用 RSA 鍵 (通常 768 ビット) を生成します。この鍵はふつう使われる と 1 時間おきに生成し直され、ディスクに保存されることは決してありません。

クライアントが接続してくると、デーモンはその公開ホスト鍵およびサーバ鍵を 返します。クライアントは自分がもっているデータベースとこの RSA ホスト鍵と を比較し、それが変更されていないことを確かめます。つぎにクライアントは 256 ビットの乱数を生成します。これをそのホスト鍵とサーバ鍵両方をつかって 暗号化し、暗号化された数値をサーバに送ります。このとき、どちらの側もこの 数値をセッション鍵として使います。セッション鍵とはこれ以降のすべての通信 を暗号化するのに使われるもので、以後セッションは既存の暗号化アルゴリズム を使って暗号化されます。これらのアルゴリズムは現在のところ Blowfish また は 3DES で、デフォルトでは 3DES となっています。クライアントはサーバに よって提案された暗号化アルゴリズムから使用するものを選択します。

つぎに、サーバとクライアントは認証のための対話に入ります。クライアントは 自分自身の身分を証明するため、 .rhosts 認証や、RSA ホスト認証と組み合わせ た .rhosts 認証、RSA チャレンジ・レスポンス 認証、あるいはパスワード認証 を使おうとします。

rhosts 認証は根本的に安全でないため、ふつうは禁止されています。しかし必要 とあればサーバの設定ファイルによって許可することもできます。 rshd, rlogind および rexecd を止めないかぎり (これは rlogin と rsh を完全に禁止 することになりますが)、システムのセキュリティは改善されません。

SSH プロトコル バージョン 2

バージョン 2 も同様に動作します: 各ホストは固有のホスト鍵 (RSA または DSA) をもっており、これでホストを識別します。しかしデーモンが開始した時点 にはサーバ鍵は生成されません。より進歩したセキュリティは Diffie-Hellman 鍵交換によって得られます。この鍵交換から共通のセッション鍵が得られます。

これ以降セッションは対称的暗号化アルゴリズムを用いて暗号化されます。アル ゴリズムは、現在のところ 128 ビット AES, Blowfish, 3DES, CAST128, Arcfour, 192 ビット AES あるいは 256 ビット AES です。クライアントはサー バが提案した暗号化アルゴリズムを選びます。これに加えて、暗号化メッセージ 認証コード (hmac-sha1 あるいは hmac-md5) により、セッションの内容が途中で 改竄されてしまうことのないようにします。

プロトコル バージョン 2 では公開鍵に基づくユーザ認証 (PubkeyAuthentication) と、クライアントホスト認証 (HostbasedAuthentication)、これに加えて従来のパスワード認証とチャレンジ・ レスポンス認証が使えます。

コマンド実行とデータ転送

クライアントが自分自身の証明に成功すると、セッションを準備するための対話 が始まります。このあとクライアントは仮想端末を割り当てたり、 X11 接続を転 送したり、TCP/IP 接続を転送したり、あるいは安全な通信路を経由して認証エー ジェントの接続を転送したりします。

最後に、クライアントはシェルか、あるいはコマンドの実行のどちらかを要求し ます。ここで双方はセッション モードに入ります。このモードでは両者はいつで もデータを送ることができ、そのデータはサーバ側のシェルまたはコマンドと、 クライアント側のユーザ端末とでやりとりされます。

ユーザのプログラムが終了し、転送されたすべての X11 接続やその他の接続が閉 じられると、サーバはクライアントにコマンドの終了状態を送り、両者は終了し ます。

sshd はコマンドラインオプションか、設定ファイルによって設定することができ ます。コマンドラインからのオプションは、設定ファイルで指定されている値よ りも優先されます。

sshd はハングアップシグナル SIGHUP を受け取ると、自分の設定ファイルを読み 込みなおします。これは自分自身を開始したときのパス名 /usr/sbin/sshd を exec することによっておこないます。

コマンドラインオプションには次のようなものがあります:

       −b ビット数

プロトコル バージョン 1 で短期的に使われるサーバ鍵のビット数を指 定します (デフォルトでは 768 ビットです)。

−d
デバッグモードにします。サーバはシステムログに対し、冗長なデバッ グ表示を出力するようになり、バックグラウンドには移行しません。ま たサーバは fork せず、1 回の接続しか受けつけません。このオプショ ンはサーバのデバッグのためだけに用意されています。複数の −d オプ ションをつけるとデバッグレベルが上がります。最高は 3 です。

−e
このオプションが指定されると、 sshd は出力を syslog のかわりに標 準エラー出力に送ります。

−f 設定ファイル
設定ファイルの名前を指定します。デフォルトは /etc/ssh/sshd_config になっています。 sshd は設定ファイルがないと起動しません。

−g ログイン猶予時間
クライアントが自分自身を認証するのにかかる猶予時間を与えます (デ フォルトは 120 秒)。クライアントがこの時間内にユーザを認証できな かった場合、サーバは接続を切って終了します。0 を値として与えると 猶予は無限になります。

−h ホスト鍵ファイル
ホスト鍵を読むファイルを指定します。このオプションは sshd を root 以外で起動するときは必ず指定しなければいけません (ホスト鍵のファ イルはふつう root からしか読めないようになっているからです)。デ フォルトでは、プロトコル バージョン 1 用の鍵が /etc/ssh/ssh_host_key であり、プロトコル バージョン 2 用の鍵が /etc/ssh/ssh_host_dsa_key です。異なるバージョンのプロトコルやホ スト鍵の方式に対し、複数のホスト鍵ファイルを指定することも可能で す。

−i
sshd
inetd(8) から起動されることを指定します。 sshd はふつう inetd からは起動されません。なぜならこれはクライアントを受けつけ る前にサーバ鍵を生成しておく必要があり、これには数十秒かかるため です。鍵が毎回生成しなおされると、クライアントは非常に長い間待た されてしまいます。しかし鍵のサイズが小さければ (たとえば 512 ビッ トぐらい)、inetd から sshd を使うことも可能でしょう。

−k 鍵の生成間隔
サーバ鍵がどれくらいの間隔で再生成されるかを指定します (デフォル トでは 3600 秒、つまり 1 時間ごとになっています)。こんなに頻繁に 鍵を再生成するのは以下のような理由によります。この鍵はどこにも格 納されません。そのため、このようにしておくとたとえマシンがクラッ クされたり物理的に乗っ取られたりしても、 1 時間後には 盗聴した通 信を解読して鍵を見つけることは不可能になります。この値として 0 を 指定すると、鍵はまったく再生成されなくなります。

−o オプション
設定ファイルと同じ形式でオプションを与えたいときに使用します。こ れはコマンドラインオプションでは指定できないオプションを指定した いときに便利です。

−p ポート番号
サーバが接続を受けつける (listen する) ポート番号を指定します (デ フォルトは 22 です)。複数のポートオプションを指定することも可能で す。なお、コマンドラインオプションでポートを指定した場合、設定 ファイルで指定されたポートは無視されます。

−q
静かなモード。ふつう、 sshd は接続の開始と認証および終了を syslog に残します。このオプションを指定すると syslog には何も残りませ ん。

−t
テストモード。設定ファイルや鍵の正当性チェックだけをおこないま す。これは設定ファイル項目を変更した際に、 sshd を安全に更新する のに便利です。

−u 長さ
このオプションはリモートホスト名を保持させる utmp 構造体のフィー ルド長を指定するのに使われます。名前解決されたホストがこの len よ りも長い場合、ドットで区切られた 10 進の数値がかわりに保持されま す。これは非常に長いホスト名をもつホストがこのフィールドをあふれ させても、一意に識別できるようにするためです。 −u0 を指定すると utmp ファイルにはつねにドットで区切られた 10 進値が使われるように なります。また −u0sshd が DNS 要求をおこなわないようにするの にも使われるかもしれません。ただし設定ファイルや認証メカニズムで これが必要とされた場合はこの限りではありません。 DNS を要求する可 能性のある認証メカニズムは RhostsAuthentication, RhostsRSAAuthentication, HostbasedAuthentication および from="pattern-list" オプションを使った鍵ファイルです。 DNS を必要 とする設定オプションには、 AllowUsers あるいは DenyUsers で使われ ている USER@HOST のパターンも含まれますので注意してください。

−D
このオプションが指定されると sshd は切り離し (detach) をおこなわ ず、デーモンにはなりません。これは sshd の監視を簡単にします。

−4
sshd
が IPv4 アドレスのみを使うよう強制します。

−6
sshd
が IPv6 アドレスのみを使うよう強制します。

設定ファイル

sshd/etc/ssh/sshd_config (あるいはコマンドラインから −f オプションで 指定したファイル) から設定を読み込みます。このファイルの形式と設定項目は sshd_config(5) で説明されています。

ログインの過程

ユーザがログインに成功すると、 sshd は以下のことをおこないます:

             1. ユーザが端末にログインしており、コマンドがとくに指定されていない場合、 (設定ファイルまたは $HOME/.hushlogin -- FILES の項を参照 -- で禁止されていなければ) 前回のログイン時刻と /etc/motdを表示する。

2. ユーザが端末にログインしている場合、ログイン時刻を記録する。

3. /etc/nologin/var/run/nologin をチェックする。これが存在す る場合、その内容を表示して終了する (root 以外)。

4. そのユーザの通常の権限に移行する。

5. 基本的な環境変数を設定する。

6. $HOME/.ssh/environment が存在していて、ユーザの環境変数を変更 することが許されていれば、それを読み込む。 sshd_config(5)PermitUserEnvironment 設定項目を参照のこと。

7. ユーザのホームディレクトリに移動する。

8. $HOME/.ssh/rc が存在する場合、それを実行する。そうでなければ、 もし /etc/ssh/sshrc が存在しているなら、それを実行する。これ以 外の場合は xauth(1) を実行する。この ‘‘rc’’ ファイルには、X11 の認証プロトコルと (適用可能であれば) そのクッキーが標準入力か ら与えられる。

9. ユーザのシェルまたはコマンドを実行する。

authorized_keys ファイルの形式

$HOME/.ssh/authorized_keys ファイルは、プロトコル バージョン 1 における RSA 認証とプロトコル バージョン 2 における公開鍵認証 (PubkeyAuthentication) でログインが許されている公開鍵を格納するものです。 別のファイルを使いたい場合は AuthorizedKeysFile で指定できます。

このファイルには各行にひとつの鍵が格納されています (空行や ‘#’ で始まる行 はコメントとして無視されます)。プロトコル バージョン 1 の RSA 鍵では、空 白で区切られた次のようなフィールドが格納されています: オプション、ビット 数、指数、モジュロ、鍵のコメント。プロトコル バージョン 2 で使う公開鍵で は次のフィールドが格納されています: オプション、鍵の種類、base64 エンコー ドされた鍵本体、鍵のコメント。オプションのフィールドはなくてもかまいませ ん。オプションが存在するかどうかは、この行が数字あるいはピリオドで始まる かどうかによって決定されます (オプションフィールドは決して数字では始まり ません)。プロトコル バージョン 1 では、RSA 鍵はビット数、指数およびモジュ ロによって表されます。コメント欄は利用されません (が、鍵を区別するのに役 立ちます)。プロトコル バージョン 2 では、鍵の種類は ‘‘ssh-dss’’ あるいは ‘‘ssh-rsa’’ です。

これらのファイルでは通常 1 行が何百バイトもの長さになっていることに注意し てください (これは公開鍵の係数のサイズが大きいためです)。これを手でタイプ する気にはならないでしょう。かわりに identity.pub, id_dsa.pub あるいは id_rsa.pub をコピーして、それを編集してください。

sshd では、プロトコル 1 とプロトコル 2 の両方で、 RSA 鍵の長さが少なくと も 768 ビット以上である必要があります。

オプションは (もしあれば) コンマによって区切ることができます。間にスペー スを入れてはいけませんが、ダブルクォートの間にはさめばオッケーです。以下 のオプションがサポートされています (これらのキーワードは大文字小文字を区 別しません) :

       from="pattern-list"

このオプションをつけると、公開鍵認証に加えて、クライアントのホス トをチェックできるようになります。コンマで区切ったリモートホスト 名 (canonical name) のパターン列が指定できます (‘*’ および ‘?’ が ワイルドカードとして使えます)。このリストには「〜でない」という否 定 (negation) を入れることもできます。その場合はパターンの先頭に ‘!’ をつけてください。否定つきのパターンにホストの canonical name がマッチした場合、この鍵は許可されません。このオプションはセキュ リティを上げるためにつけられました: 公開鍵認証それ自体は、(鍵を除 いて) ネットワークやネームサーバ、その他ありとあらゆるものを信用 しません。しかし、もし何物かが何らかの方法で鍵を盗むことができれ ば、その鍵を使って世界のどこからでもログインできてしまうことにな ります。このオプションは、そのような盗まれた鍵を使うことをより困 難にします (もしこれを使おうとするなら、鍵のほかにネームサーバや ルータまでも手を入れなくてはならないからです)。

command="command"
このオプションを使うと、認証にこの鍵が使われたときは必ずここで指 定されたコマンドが実行されるようになります。ユーザが (訳注: クラ イアント側で) 指定したコマンドは無視されます。クライアント側が仮 想端末を要求していれば、ここで指定されたコマンドは仮想端末上で実 行されます。そうでなければ端末なしで実行されます。 8-bit クリーン な通信が欲しい場合は、仮想端末を要求してはいけません。あるいは no-pty オプションを使ってください。コマンド文字列中に引用符 (") を入れたいときは、バックスラッシュを前につけてください。このオプ ションは、ある公開鍵には特定の操作だけしかさせないようにするのに 有効です。例として、リモートバックアップだけをさせて、それ以外な 何もさせないような鍵がつくれます。クライアントの TCP/IP や X11 転 送は、明示的に禁止されていない限り可能なので注意してください。こ のオプションはシェル、コマンドまたはサブシステムの実行に適用され ます。

environment="NAME=value"
認証にこの鍵が使われたとき、環境変数に追加される文字列を指定しま す。このやりかたで指定した環境変数は、デフォルトの環境変数の値を 上書きします。このオプションは複数指定することも可能です。環境変 数の変更はデフォルトでは禁止されており、これを許可するには PermitUserEnvironment を設定する必要があります。 UseLogin を使っ ているときは、このオプションは自動的に禁止されます。

no-port-forwarding
認証にこの鍵が使われたときは TCP/IP 転送が禁止されます。クライア ントがポート転送を要求しても、すべてエラーになります。これはたと えば command オプションの指定されている接続などで使われます。

no-X11-forwarding
認証にこの鍵が使われたときは X11 転送が禁止されます。クライアント が X11 転送を要求しても、すべてエラーになります。

no-agent-forwarding
認証にこの鍵が使われたときは、認証エージェントの転送が禁止されま す。

no-pty
端末の割り当てを禁止します (仮想端末の割り当てが失敗するようにな ります)。

permitopen="host:port"
ローカルな ‘‘ssh -L’’ のポート転送先を、指定されたホストの指定さ れたポートのみに限定します。 IPv6 アドレスの場合は、指定する形式 が異なります: host/port permitopen オプションはコンマで区切って複 数指定することもできます。パターンマッチングはおこなわれません。 ホスト名にはドメイン名かアドレスをそのまま書く必要があります。

authorized_keysファイルの例:
1024 33 12121...312314325 ylo@foo.bar

from="*.niksula.hut.fi,!pc.niksula.hut.fi" 1024 35 23...2334 ylo@niksula

command="dump /home",no-pty,no-port-forwarding 1024 33 23...2323 backup.hut.fi

permitopen="10.2.1.55:80",permitopen="10.2.1.56:25" 1024 33 23...2323

ssh_known_hosts ファイルの形式

/etc/ssh/ssh_known_hosts および $HOME/.ssh/known_hosts の各ファイルは今ま でに知られているホストの公開鍵をすべて格納しています。システム用の known_hosts ファイル (大域的 known_hosts ファイル) は管理者によって用意さ れ (必須ではありません)、ユーザ用の known_hosts ファイルは自動的に更新さ れます。これは、ユーザがまだ知られていないホストに接続すると、そのホスト 鍵が自動的にユーザ用 known_hosts ファイルに追加されるようになっています。

これら known_hosts ファイルの各行は次のようなフィールドからなっています: ホスト名、ビット数、指数、係数、そしてコメント。各フィールドはスペースに よって区切られています。

ホスト名はコンマで区切られたパターン列です ( ‘*’ および ‘?’ はワイルド カードとして使われます)。各パターンは (クライアントを認証しているときは) 順にそのホストの正式名と比較されるか、あるいは (サーバを認証しているとき は) ユーザが与えた名前と比較されます。パターンの先頭に ‘!’ をつけると「〜 でない」という否定 (negation) の意味になります。否定されたパターンにマッ チしたホストは、たとえその行の他のパターンにマッチしても (その行では) 受 けつけられません。

ビット数、指数および係数は RSA ホスト鍵から直接取り込まれます。たとえばこ れらは /etc/ssh/ssh_host_key.pub などから取得されます。オプションのコメン ト フィールドは行末まで続き、これは無視されます。

‘#’ で始まる行および空行はコメントとして無視されます。

ホスト間認証をおこなうさい、どれか適切な鍵をもった行がマッチすれば、認証 は受け入れられます。したがって同じ名前が複数の行にあったり、同一ホストに 異なるホスト鍵が書いてあったりしても受けつけられます (が、おすすめはしま せん)。異なったドメインにあるホスト名の短縮形がひとつのファイルにまとめら れているときは、これは仕方がないでしょう。また、これらのファイルには矛盾 する情報が書かれていることもあり得ます。その場合は、どれかのファイルに正 しい情報が書いてあれば認証は受け入れられます。

注意。これらのファイルの各行は、ふつう何百文字もの長さになっています。も ちろんこんなホスト鍵を手で入力したくはないでしょう。かわりにスクリプトで 生成するか、 /etc/ssh/ssh_host_key.pub をとってきてその先頭にホスト名をつ け加えるかしてください。

:

closenet,...,130.233.208.41 1024 37 159...93 closenet.hut.fi
cvs.openbsd.org,199.185.137.3 ssh-rsa AAAA1234.....=

関連ファイル

       /etc/ssh/sshd_config

sshd の設定ファイルです。このファイルの形式と設定項目は sshd_config(5) で説明されています。

/etc/ssh/ssh_host_key, /etc/ssh/ssh_host_dsa_key
これら 2 つのファイルはホストの秘密鍵を格納します。このファイルは root が所有し、root だけが読み込み可能にすべきであり、これ以外の 誰にも読ませてはいけません。 sshd はこのファイルが誰にでも読める ようになっていると起動しないので注意してください。

/etc/ssh/ssh_host_key.pub, /etc/ssh/ssh_host_dsa_key.pub
これら 2 つのファイルはホストの公開鍵を格納します。このファイルは 誰にでも読めるようになっている必要がありますが、書き込めるのは root だけにしてください。この内容は秘密鍵のファイルと対応していま す。このファイルが実際に使われることはありません。これは単にユー ザの便宜をはかるためだけに存在し、ユーザはこれを known_hosts ファ イルにコピーすることができます。これら 2 つのファイル (秘密鍵と公 開鍵) は ssh-keygen(1) を使って生成することができます。

/etc/ssh/moduli
Diffie-Hellman 鍵交換 (Diffie-Hellman Group Exchange) で使われ る、 Diffie-Hellman 群を格納します。このファイルの形式は moduli(5) で説明されています。

/var/empty
sshd
が特権分離のさいに、認証前の段階で使用する chroot(2) 用の ディレクトリです。このディレクトリはどんなファイルも含んでいては ならず、所有者は root でグループあるいは他人が書きこめるように なっていてはいけません。

/var/run/sshd.pid
現在接続を受けつけている sshd のプロセス ID が入っています (複数 の sshd が異なるポートで走っているときは、最後に開始したプロセス の ID が入ります)。このファイルの内容は機密事項ではなく、誰でも読 めるようにしてかまいません。

$HOME/.ssh/authorized_keys
そのユーザのアカウントでログインするときに使われる公開鍵 (RSA ま たは DSA) の一覧が入っています。このファイルは root に読めるよう になっている必要があります (つまりそのユーザのホームディレクトリ が別ホストの NFS ボリューム上にあるような場合、 (訳注: 一般に NFS では他ホストからの root アクセスを認めていないので) そのファイル は誰にでも読めるようになっていなければなりません)。でもこれは他の 人には読めないようにしておくことをすすめます。このファイルの形式 は上で説明されています。ユーザは自分の identity.pub, id_dsa.pubid_rsa.pub ファイルの内容をこのファイルに入れておきます。これ は ssh-keygen(1) で説明されています。

/etc/ssh/ssh_known_hosts and $HOME/.ssh/known_hosts
これらのファイルは、プロトコル バージョン 1 の RSA ホスト間認証ま たはプロトコル バージョン 2 のホストベース認証とともに rhosts ファイルを使うとき、相手ホストの公開鍵をチェックするために使用さ れます。認証が成功するためには、これらのファイルのどちらかに相手 のホスト鍵が格納されていなくてはいけません。一方、SSH クライアン トはこのファイルを、接続先のリモートホストが本当に接続しようとし ているホストかどうか確認するのに使います。これらのファイルは root と所有者には書き込み可能にしておきます。 /etc/ssh/ssh_known_hosts は誰からでも読めるようにしておいてください。 $HOME/.ssh/known_hosts は誰からも読めるようにできますが、別にそう する必要はありません。

/etc/nologin
このファイルが存在していると、 sshd は root を除くすべてのユーザ のログインを拒否します。このファイルの内容は root 以外でログイン しようとして拒否された人に対して表示されます。このファイルは誰に でも読めるようになっている必要があります。

/etc/hosts.allow, /etc/hosts.deny
このファイルは tcp-wrappers によるアクセス制限を定義しています。 詳しい説明は hosts_access(5) を参照してください。

$HOME/.rhosts
このファイルには、各行にホスト名とユーザ名の対をスペースで区切っ て格納します。当該ホストの指定されたユーザからはパスワードなしの ログインが許可されます。このファイルは rlogind および rshd からも 使われます。これはそのユーザにのみ書き込めるようにしておき、他の 人からはアクセス不可能にしておくのがよいでしょう。

このファイルでは ネットグループ (netgroup) を使うこともできます。 ホスト名やユーザ名は +@groupname のような形式で書くことができ、こ の場合はそのグループ中のすべてのホストあるいはユーザが指定されま す。

$HOME/.shosts
ssh は、これを .rhosts とまったく同じように扱います。しかしこれは rlogind や rshd からは使われないので、SSH を使ったときのみアクセ スを許可するときにこのファイルを使います。

/etc/hosts.equiv
このファイルは .rhosts 認証のさいに使われます。いちばん簡単な形式 は、各行にひとつのホスト名を書いておくことです。これらのホストか らのユーザは、両方のマシンでユーザ名が同じならばパスワードなしで ログインを許可されます。ホスト名のあとにユーザ名をつけることもで きます。この場合、そのユーザはこのマシン上で どんなユーザとしても ログインできてしまいます (root を除く)。 ‘‘+@group’’ のような形式 で ネットグループ (netgroup) を指定することもできます。否定のエン トリは先頭に ‘-’ をつけてください。

もし相手のクライアント、あるいはそこのユーザがこのファイルにマッ チする場合、クライアント側とサーバ側のユーザ名が同じならばログイ ンは自動的に許可されます。通常はこれに加えて RSA ホスト間認証が成 功していることが必要です。このファイルは root にしか書き込み可能 にしてはいけません。また、誰にでも読めるようにしておくほうがよい でしょう。

「警告: hosts.equiv でユーザ名を使うのは絶対にやめるべきです」

これはそのユーザが本当に 誰としてでもログインできてしまうことにな るんです。つまり bin や daemon や adm や、その他非常に重要なバイ ナリやディレクトリを所有しているアカウントでもログインできるので す。ユーザ名を使うのは、実際にはそのユーザに root のアクセスを許 しているのと同じです。ここでのユーザ名の唯一のまともな使いみち は、おそらく否定のエントリで使うことだけでしょう。

ここでの警告は rsh/rlogin にもあてはまることを覚えておいてくださ い。

/etc/ssh/shosts.equiv
これは /etc/hosts.equiv とまったく同じように使われます。このファ イルは rsh や rlogin を ssh と同じ環境で動かすときに有用でしょ う。

$HOME/.ssh/environment
このファイルは (存在していれば) ログイン時に環境変数に読み込まれ ます。これが含んでいてよいのは、空行、コメント行 ( ‘#’ で始ま る)、および ‘‘変数名=値’’ の形式の代入行だけです。このファイルは そのユーザにのみ書き込み可能にしておいてください。べつに他人が読 めるようにしておく必要もありません。環境変数の変更はデフォルトで は禁止されており、これを許可するには PermitUserEnvironment を設定 する必要があります。

$HOME/.ssh/rc
このファイルが存在していると、環境変数ファイルが読み込まれた後に このファイルが /bin/sh によって実行されます。これはユーザのシェル あるいはコマンドの実行よりも前におこなわれます。このファイルは標 準出力には何も出力してはいけません。かわりに標準エラー出力を使っ てください。X11 転送を使っているときは、このスクリプトには標準入 力から ‘‘プロトコル クッキー’’ の対 (および環境変数には DISPLAY ) が与えられます。このとき、スクリプトは xauth(1) を呼び出す必要 があります。なぜなら sshd はこの場合 X11 クッキーを追加するための xauth を自動的には実行しないからです。

このファイルの基本的な目的は、ユーザがホームディレクトリにアクセ ス可能になる前に必要と考えられる初期化ルーチンを実行することで す。とくにこのような環境の例として、AFS があります。

おそらくこのファイルは、たとえば次のような何らかの初期化コードを 含むことになるでしょう:

if read proto cookie && [ -n "$DISPLAY" ]; then

if [ ‘echo $DISPLAY | cut -c1-10‘ = ’localhost:’ ]; then

# X11UseLocalhost=yes

echo add unix:‘echo $DISPLAY |

cut -c11-‘ $proto $cookie

else

# X11UseLocalhost=no

echo add $DISPLAY $proto $cookie

fi | xauth -q -

fi

このファイルが存在しない場合は /etc/ssh/sshrc が実行されます。こ れも存在しない場合は、 xauth がクッキーを追加するために使われま す。

このファイルは、そのユーザにのみ書き込み可能にしておいてくださ い。誰でも読めるようにしておく必要はありません。

       /etc/ssh/sshrc

$HOME/.ssh/rc に似ています。これはそのマシン全体にわたってログイ ン時の初期化を指定するのに使われます。これは root のみ書き込み可 能にしておき、誰からも読めるようにしておくべきです。

作者

OpenSSH は Tatu Ylonen による、フリーなオリジナル版 ssh 1.2.12 リリースか ら派生したものです。 Aaron Campbell、 Bob Beck、 Markus Friedl、 Niels Provos、 Theo de Raadt および Dug Song が多くのバグをとり除き、新しい機能 をふたたび追加して OpenSSH をつくりました。 SSH プロトコル バージョン 1.5 および 2.0 のサポートは Markus Friedl の貢献によるものです。 Niels Provos および Markus Friedl が特権分離のサポートに貢献しました。

日本語訳

新山 祐介 (yusuke at cs . nyu . edu) 2003/3/31 (for 3.6p1)

当マニュアルページは氏のご好意により FreeBSD 日本語マニュアルに収録させて いただいています。翻訳についてのご意見、ご指摘がありましたら新山氏 (yusuke at cs . nyu . edu)、および FreeBSD jpman プロジェクト ⟨man-jp@jp.FreeBSD.org⟩ までお送りください。

関連項目

scp(1), sftp(1), ssh(1), ssh-add(1), ssh-agent(1), ssh-keygen(1), login.conf(5), moduli(5), sshd_config(5), sftp-server(8)

       T. Ylonen,                    T. Kivinen,                                  M. Saarinen,                                                 T. Rinne, and                                                                 S. Lehtinen,      SSH Protocol Architecture,                                   draft-ietf-secsh-architecture-12.txt,     January 2002,                     work in progress material.
       M. Friedl,                    N. Provos, and                                     W. A. Simpson,                                                      Diffie-Hellman GroupExchange for the SSH Transport Layer Protocol,     draft-ietf-secsh-dh-group-exchange-02.txt,                                                  January 2002,                                                                  work inprogress material.
FreeBSD 10.0                  September 25, 1999                  FreeBSD 10.0
スポンサーリンク