Deprecated : The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
sshd
名前
sshd - OpenSSH SSH デーモン
書式
sshd [-46Ddeiqt ] [-b ビット数] [-f 設定ファイル] [-g ログイン制限時間]
[-h ホスト鍵ファイル] [-k 鍵の生成間隔] [-o オプション] [-p ポート]
[-u 長さ]
説明
sshd (OpenSSH デーモン) は ssh(1) のためのデーモンプログラムです。これら
のプログラムはともに rlogin と rsh を置き換えるもので、安全でないネットワ
ーク上にある、2つの信頼されていないホスト間で、暗号化された安全な通信を提
供します。
sshd はクライアントからの接続を listen します。通常、これはブート時に
/etc/rc から起動され、接続を受けつけるたびに新しいデーモンが fork しま
す。 fork したデーモンは、鍵の交換、暗号化、認証、コマンド実行、そしてデ
ータ交換をおこないます。
sshd はコマンドライン オプションか、設定ファイル (デフォルトでは
sshd_config(5)) によって設定することができます。コマンドラインからのオプ
ションは、設定ファイルで指定されている値よりも優先されます。 sshd はハン
グアップシグナル SIGHUP を受け取ると、自分の設定ファイルを読み込みなおし
ます。これは自分自身を開始したときのパス名、たとえば /usr/sbin/sshd とオ
プションを exec することによっておこないます。
コマンドラインオプションには次のようなものがあります:
-4 sshd が IPv4 アドレスのみを使うよう強制します。
-6 sshd が IPv6 アドレスのみを使うよう強制します。
-b ビット数
プロトコル バージョン 1 で短期的に使われるサーバ鍵のビット数を指
定します (デフォルトでは 768 ビットです)。
-D このオプションが指定されると sshd は切り離し (detach) をおこなわ
ず、デーモンにはなりません。これは sshd の監視を簡単にします。
-d デバッグモードにします。サーバはシステムログに対し、冗長なデバッ
グ表示を出力するようになり、バックグラウンドには移行しません。ま
たサーバは fork せず、1 回の接続しか受けつけません。このオプショ
ンはサーバのデバッグのためだけに用意されています。複数の -d オプ
ションをつけるとデバッグレベルが上がります。最高は 3 です。
-e このオプションが指定されると、 sshd は出力を syslog のかわりに標
準エラー出力に送ります。
-f 設定ファイル
設定ファイルの名前を指定します。デフォルトは /etc/ssh/sshd _ config
になっています。 sshd は設定ファイルがないと起動しません。
-g ログイン制限時間
クライアントが自分自身を認証するまでの制限時間を指定します (デ
フォルトは 120 秒)。クライアントがこの時間内にユーザを認証できな
かった場合、サーバは接続を切って終了します。ゼロを値として与える
と制限はなくなります。
-h ホスト鍵ファイル
ホスト鍵を読むファイルを指定します。このオプションは sshd を root
以外で起動するときは必ず指定しなければいけません (ホスト鍵のファ
イルはふつう root からしか読めないようになっているからです)。デ
フォルトでは、プロトコル バージョン 1 用の鍵が
/etc/ssh/ssh _ host _ key であり、プロトコル バージョン 2 用の鍵が
/etc/ssh/ssh _ host _ rsa _ key および /etc/ssh/ssh _ host _ dsa _ key です。
異なるバージョンのプロトコルやホスト鍵の方式に対し、複数のホスト
鍵ファイルを指定することも可能です。
-i sshd が inetd(8) から起動されることを指定します。ふつう sshd が
inetd から起動されることはありません。なぜなら sshd はクライアン
トを受けつける前にサーバ鍵を生成しておく必要があり、これには数十
秒かかるためです。鍵が毎回生成しなおされると、クライアントは非常
に長い間待たされてしまいます。しかし鍵のサイズが小さければ (たと
えば 512 ビットぐらい)、inetd から sshd を使うことも可能でしょ
う。
-k 鍵の生成間隔
サーバ鍵がどれくらいの間隔で再生成されるかを指定します (デフォル
トでは 3600 秒、つまり 1 時間ごとになっています)。こんなに頻繁に
鍵を再生成するのは以下のような理由によります。この鍵はどこにも格
納されません。そのため、このようにしておくとたとえマシンがクラッ
クされたり物理的に乗っ取られたりしても、 1 時間後には盗聴した通信
を解読して鍵を見つけることは不可能になります。この値としてゼロを
指定すると、鍵はまったく再生成されなくなります。
-o オプション
設定ファイルと同じ形式でオプションを与えたいときに使用します。こ
れはコマンドラインオプションでは指定できないオプションを指定した
いときに便利です。オプションの詳細と、これらがとりうる値について
は sshd_config(5) を参照してください。
-p ポート
サーバが接続を受けつける (listen する) ポートを指定します (デフォ
ルトは 22 です)。複数のポートオプションを指定することも可能です。
なお、コマンドラインオプションでポートを指定した場合、 Port で指
定されたポートは無視されます。 ListenAddress で指定したポートはコ
マンドラインで指定されたポートよりも優先されます。
-q 静かなモード。ふつう、 sshd は接続の開始と認証および終了を syslog
に残します。このオプションを指定すると syslog には何も残りませ
ん。
-t テストモード。設定ファイルや鍵の正当性チェックだけをおこないま
す。これは設定ファイル項目を変更した際に、 sshd を安全に更新する
のに便利です。
-u 長さ
このオプションはリモートホスト名を保持させる utmp 構造体のフィー
ルド長を指定するのに使われます。名前解決されたホストがこの len よ
りも長い場合、ドットで区切られた 10 進の数値がかわりに保持されま
す。これは非常に長いホスト名をもつホストがこのフィールドをあふれ
させても、一意に識別できるようにするためです。 -u0 を指定すると
utmp ファイルにはつねにドットで区切られた 10 進値が使われるように
なります。また -u0 は sshd が DNS 要求をおこなわないようにするの
にも使うことができます。ただし設定ファイルや認証メカニズムでこれ
が必要とされた場合はこの限りではありません。 DNS を要求する可能性
のある認証メカニズムは RhostsRSAAuthentication 、
HostbasedAuthentication および from="pattern-list" オプションを
使った鍵ファイルです。 DNS を必要とする設定オプションには、
AllowUsers あるいは DenyUsers . で使われている「USER@HOST」のパタ
ーンも含まれますので注意してください。
認証
OpenSSH SSH デーモンは、デフォルトで SSH プロトコルバージョン 1 と 2 を両
方サポートしています。サポートするプロトコルは sshd_config(5) の Protocol
オプションで変更できます。プロトコルバージョン 2 は RSA および DSA鍵をど
ちらもサポートしています。プロトコルバージョン 1 がサポートするのは RSA
鍵だけです。どちらのプロトコルでも、各ホストは識別のためのホストごとの鍵
を持っており、これは通常 2048ビットからなります。
プロトコルバージョン 1 では、追加のサーバ鍵によって forward security (訳
注: 将来、鍵が破られても現在の通信の秘匿性が保たれる特性) を提供していま
す。サーバ鍵は使われると通常 1 時間おきに再生成され、これは決してディスク
に保存されません。クライアントが接続してくると、デーモンはそのホスト公開
鍵とサーバ鍵を使って応答します。クライアントはその RSA ホスト鍵を自分のデ
ータベース中にあるものと比較し、それが変更されていないことを確かめます。
その後クライアントは 256 ビットの乱数を生成し、ホスト鍵とサーバ鍵を使って
暗号化したあと暗号化された数値をサーバに送ります。以降、クライアントとサ
ーバの両者はこの乱数をセッション鍵として使い、通信を暗号化します。これ以
降の通信は一般的な Blowfish あるいは 3DES (デフォルト) 暗号方式を使って暗
号化されます。暗号方式は、クライアントがサーバから提供されたものの中から
選択します。
プロトコルバージョン 2 では、forward security は Diffie-Hellman 鍵交換に
よって提供されます。この鍵交換プロセスにより、サーバとクライアント間で共
通のセッション鍵が得られます。これ以降の通信は現在のところ 128-bit AES,
Blowfish, 3DES, CAST128, Arcfour, 192-bit AES あるいは 256-bit AES などの
共通鍵暗号方式によって暗号化されます。暗号方式は、クライアントがサーバか
ら提供されたものの中から選択します。さらに、通信の正真性 (integrity、訳
注: 内容が改ざんされていないこと) がメッセージ認証コード (MAC) によって提
供されます。これには hmac-md5, hmac-sha1, umac-64 あるいは hmac-ripemd160
が使われます。
最後にサーバとクライアントは認証をおこないます。ここではクライアントは自
分自身を認証するために、ホストベースド認証 (host-based authentication)、
公開鍵認証 (public key authentication)、チャレンジ・レスポンス認証
(challenge-response authentication)、またはパスワード認証 (password au-
thentication) を使用します。
認証の形式に関わらず、アカウントがアクセス可能かどうかをチェックします。
アカウントがロックされているか、 DenyUsers に記載されているか、またはその
グループが DenyGroups に記載されている場合、アカウントはアクセスできませ
ん。ロックされたアカウントの定義はシステムに依存します。いくつかのプラッ
トフォーム (例えば AIX) では独自のアカウントデータベースを持ち、またいく
つかは passwd フィールドを変更します (Solaris および UnixWare では
`*LK*', HP-UX では `*', Tru64 では `Nologin' を含みます。また FreeBSD で
は `*LOCKED*', Linux では `!!' が先行します)。あるアカウントに公開鍵認証
を許可しておきながら、パスワード認証を無効にする必要がある場合、パスワー
ドフィールドはこれら以外の値 (例えば `NP' または `*NP*') に設定する必要が
あります。
クライアントが認証に成功すると、セッションを準備するための対話がおこなわ
れます。この時点で、クライアントは仮想端末の使用を要求したり、X11 接続の
転送、 TCP 接続の転送、あるいは認証エージェントの転送などを安全な通信路を
介して要求することができます。
この後、クライアントはシェルを要求するか、コマンドを実行します。両者はこ
の後セッションモードに入ります。セッションモードでは、どちらの側もいつで
もデータを送ることができ、これらのデータはサーバ側のシェルやコマンドとク
ライアント側のユーザの端末の間でやりとりされます。
ユーザのプログラムが終了し、すべての転送された X11 接続やその他の接続が閉
じられると、サーバはコマンドの終了状態をクライアント側に送り、両者は終了
します。
ログインの過程
ユーザがログインに成功すると、 sshd は以下のことをおこないます:
1. ユーザが端末にログインしており、コマンドがとくに指定されていな
い場合、 (設定ファイルまたは ~/.hushlogin -- FILES の項を参照
-- で禁止されていなければ) 前回のログイン時刻と /etc/motd を表
示する。
2. ユーザが端末にログインしている場合、ログイン時刻を記録する。
3. /etc/nologin をチェックする。これが存在する場合、 (root でなけ
れば) その内容を表示して終了する。
4. そのユーザの通常の権限に移行する。
5. 基本的な環境変数を設定する。
6. ~/.ssh/environment が存在していて、ユーザの環境変数を変更する
ことが許されていれば、それを読み込む。 sshd_config(5) の
PermitUserEnvironment 設定項目を参照のこと。
7. ユーザのホームディレクトリに移動する。
8. ~/.ssh/rc が存在する場合、それを実行する。そうでなければ、もし
/etc/ssh/sshrc が存在しているなら、それを実行する。これ以外の
場合は xauth を実行する。この ``rc'' ファイルには、X11 の認証
プロトコルとそのクッキーが標準入力から与えられる。(下記の
SSHRC を参照してください。)
9. ユーザのシェルまたはコマンドを実行する。
SSHRC
~/.ssh/rc ファイルが存在する場合は、環境変数ファイルを読み込んだあと、ユ
ーザのシェルやコマンドが開始する前にこのファイルが sh(1) を介して実行され
ます。このスクリプトは標準出力 (stdout) に何も表示してはいけません。かわ
りに標準エラー出力 (stderr) を使ってください。 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 が実行されます。
AUTHORIZED_KEYS ファイルの形式
AuthorizedKeysFile 項目は公開鍵認証のための公開鍵を格納するファイルを指定
します。指定がない場合、このファイルはデフォルトで ~/.ssh/authorized _ keys
になります。このファイルには各行にひとつの鍵が格納されています (空行や
`#' で始まる行はコメントとして無視されます)。プロトコル バージョン 1 の公
開鍵では、空白で区切られた以下の項目が格納されています: オプション、ビッ
ト数、指数、係数 (modulus)、鍵のコメント。プロトコル バージョン 2 の公開
鍵では、以下の項目が格納されています: オプション、鍵の種類、 base64 エン
コードされた鍵本体、鍵のコメント。オプション項目はなくてもかまいません。
オプションが存在するかどうかは、この行が数字で始まるかどうかによって決定
されます (オプション項目は決して数字では始まりません)。プロトコル バー
ジョン 1 では、RSA 鍵はビット数、指数および係数 (modulus) によって表され
ます。コメント欄は利用されません (が、鍵を区別するのに役立ちます)。プロト
コル バージョン 2 では、鍵の種類は ``ssh-dss'' あるいは ``ssh-rsa'' で
す。
これらのファイルでは通常、 1 行が何百バイトもの長さになっていることに注意
してください (これは公開鍵の係数のサイズが大きいためです)。 DSA 鍵の長さ
の制限は最大 8 キロバイトで、 RSA 鍵の最大は 16 キロバイトです。これを手
でタイプする気にはならないでしょう。かわりに identity.pub , id _ dsa.pub あ
るいは id _ rsa.pub をコピーして、それを編集してください。
sshd では、プロトコル 1 とプロトコル 2 の両方で、 RSA 鍵の長さが少なくと
も 768 ビット以上である必要があります。
オプションは (もしあれば) カンマによって区切ることができます。間にスペー
スを入れてはいけませんが、ダブルクォートの間にはさめばオッケーです。以下
のオプションがサポートされています (これらのキーワードは大文字小文字を区
別しません) :
command="command"
このオプションを使うと、認証にこの鍵が使われたときは必ずここで指
定されたコマンドが実行されるようになります。ユーザが (訳注: クラ
イアント側で) 指定したコマンドは無視されます。クライアント側が仮
想端末を要求していれば、ここで指定されたコマンドは仮想端末上で実
行されます。そうでなければ端末なしで実行されます。 8-bit クリーン
な通信が欲しい場合は、仮想端末を要求してはいけません。あるいは
no-pty オプションを使ってください。コマンド文字列中にダブルクォー
トを入れたいときは、前にバックスラッシュをつけてください。このオ
プションは、ある公開鍵には特定の操作だけしかさせないようにするの
に有効です。例として、リモートバックアップだけをさせて、それ以外
な何もさせないような鍵がつくれます。クライアントの TCP や X11 転
送は、明示的に禁止されていない限り可能なので注意してください。ク
ライアントによって元々実行されたコマンドラインは環境変数
SSH_ORIGINAL_COMMAND に格納されています。注意: このオプションは
シェル、コマンドまたはサブシステムの実行に適用されます。
environment="NAME=value"
認証にこの鍵が使われたとき、環境変数に追加される文字列を指定しま
す。このやりかたで指定した環境変数は、デフォルトの環境変数の値を
上書きします。このオプションは複数個指定することも可能です。環境
変数の変更はデフォルトでは禁止されており、これを許可するには
PermitUserEnvironment を設定する必要があります。 UseLogin を使っ
ているときは、このオプションは自動的に禁止されます。
from="pattern-list"
このオプションをつけると、公開鍵認証に加えて、クライアントのホス
トをチェックできるようになります。カンマで区切ったリモートホスト
名 (canonical name) のパターン列が指定できます。このオプションは
セキュリティを上げるためにつけられました: 公開鍵認証それ自体
は、(鍵を除いて) ネットワークやネームサーバ、その他ありとあらゆる
ものを信用しません。しかし、もし何者かが何らかの方法で鍵を盗むこ
とができれば、その鍵を使って世界のどこからでもログインできてしま
うことになります。このオプションは、そのような盗まれた鍵を使うこ
とをより困難にします (もしこれを使おうとするなら、鍵のほかにネー
ムサーバやルータなどにまで侵入しなくてはならないからです)。
パターンに関する詳細は、 ssh_config(5) の パターンの項を参照して
ください。
no-agent-forwarding
認証にこの鍵が使われたときは、認証エージェントの転送が禁止されま
す。
no-port-forwarding
認証にこの鍵が使われたときは TCP 転送が禁止されます。クライアント
がポート転送を要求しても、すべてエラーになります。たとえば、これ
は command オプションの指定されている接続などで使われます。
no-pty 端末の割り当てを禁止します (仮想端末の割り当てが失敗するようにな
ります)。
no-X11-forwarding
認証にこの鍵が使われたときは X11 転送が禁止されます。クライアント
が X11 転送を要求しても、すべてエラーになります。
permitopen="host:port"
ローカルな ``ssh -L'' のポート転送先を、指定されたホストの指定さ
れたポートのみに限定します。 IPv6 アドレスの場合は、指定する形式
が異なります: host /port permitopen オプションはカンマで区切って複
数個指定することもできます。パターンマッチングはおこなわれませ
ん。ホスト名にはドメイン名かアドレスをそのまま書く必要がありま
す。
tunnel="n"
サーバ側の tun(4) デバイスを強制的に指定します。このオプションが
ない場合、クライアントがトンネリングを要求すると、現在の次に使用
可能なデバイスが使われます。
authorized_keys ファイルの例:
# コメントをつけるときは行頭から
ssh-rsa AAAAB3Nza...LiPk== user@example.net
from="*.sales.example.net,!pc.sales.example.net" ssh-rsa
AAAAB2...19Q== john@example.net
command="dump /home",no-pty,no-port-forwarding ssh-dss
AAAAC3...51R== example.net
permitopen="192.0.2.1:80",permitopen="192.0.2.2:25" ssh-dss
AAAAB5...21S==
tunnel="0",command="sh /etc/netstart tun0" ssh-rsa AAAA...==
jane@example.net
ssh_known_hosts ファイルの形式
/etc/ssh/ssh _ known _ hosts および ~/.ssh/known _ hosts の各ファイルは今までに
知られているホストの公開鍵をすべて格納しています。システム全体で使われる
known_hosts ファイル (大域的 known_hosts ファイル) は管理者によって用意さ
れ (必須ではありません)、ユーザ用の known_hosts ファイルは自動的に更新さ
れます。ユーザがまだ知られていないホストに接続すると、そのホスト鍵が自動
的にユーザ用 known_hosts ファイルに追加されるようになっています。
これらの known_hosts ファイルの各行は次のような項目からなっています: ホス
ト名、ビット数、指数、係数 (modulus)、そしてコメント。各項目はスペースに
よって区切られています。
ホスト名はカンマで区切られたパターン列です (`*' および `?' はワイルドカー
ドとして使われます)。各パターンは、クライアントを認証している場合は順にそ
のホストの正式名と比較され、サーバを認証している場合はユーザが与えた名前
と比較されます。パターンの先頭に `!' をつけると「〜でない」という否定
(negation) の意味になります。否定されたパターンにマッチしたホストは、たと
えその行の他のパターンにマッチしても (その行では) 受けつけられません。ホ
スト名またはアドレスには、ブラケット `[' および `]' で囲んだあと、 `:' の
後に標準的でないポート番号を加えることもできます。
もうひとつの形式として、各ホスト名はハッシュされた形式で格納されているこ
ともあります。これは、万が一そのファイルが見られた時でも、そのホスト名や
IP アドレスが識別できないようにするためです。ハッシュされたホスト名は `|'
文字から始まります。各行はハッシュされたホスト名をひとつだけ持ち、これら
に上記の否定表現やワイルドカード演算子を適用することはできません。
ビット数、指数および係数は RSA ホスト鍵から直接取り込まれます。たとえばこ
れらは /etc/ssh/ssh _ host _ key.pub などから取得されます。オプションのコメン
トは行末まで続き、これは無視されます。
`#' で始まる行および空行はコメントとして無視されます。
ホスト間認証をおこなう際、どれか適切な鍵をもった行がマッチすれば、認証は
受け入れられます。したがって同じ名前が複数の行にあったり、同一ホストに異
なるホスト鍵が書いてあったりしても受けつけられます (が、おすすめはしませ
ん)。異なったドメインにあるホスト名の短縮形がひとつのファイルにまとめられ
ているときは、これは仕方がないでしょう。また、これらのファイルには互いに
矛盾する情報が書かれていることもあり得ます。その場合は、どれかのファイル
に正しい情報が書いてあれば認証は受け入れられます。
注意。これらのファイルの各行は、ふつう何百文字もの長さになっています。も
ちろんこんなホスト鍵を手で入力したくはないでしょう。かわりにスクリプトで
生成するか、 /etc/ssh/ssh _ host _ key.pub をとってきてその先頭にホスト名をつ
け加えるかしてください。
ssh_known_hosts の例:
# コメントをつけるときは行頭から
closenet,...,192.0.2.53 1024 37 159...93 closenet.example.net
cvs.example.net,192.0.2.10 ssh-rsa AAAA1234.....=
# ハッシュされたホスト名
|1|JfKTdBh7rNbXkVAQCRp4OQoPfmI=|USECr3SWf1JUPsms5AqfD5QfxkM= ssh-rsa
AAAA1234.....=
関連ファイル
~/.hushlogin
このファイルがあると、 PrintLastLog および PrintMotd がそれぞれ許
可されている場合でも最終ログイン時刻と /etc/motd ファイルの表示は
されなくなります。しかし Banner によって指定されているバナーはか
ならず表示します。
~/.rhosts
このファイルはホストベースド認証 (host-based authentication -- 詳
しくは ssh(1) を参照) で使われます。 sshd はこのファイルを root
として読むため、ユーザのホームディレクトリが NFS 上にある場合、マ
シンによっては、このファイルは誰にでも読めるようにしておく必要が
あるかもしれません。
~/.shosts
このファイルは .rhosts とまったく同じように扱われます。しかしこれ
は rlogin/rsh から使われることなくホストベースド認証を許可するこ
とができます。
~/.ssh/authorized _ keys
そのユーザのアカウントでログインするときに使われる公開鍵 (RSA ま
たは DSA) の一覧が入っています。このファイルの形式は上で説明され
ています。このファイルの内容はそれほど秘密にする必要はありません
が、推奨されるパーミッションは、その所有者のみが読み書き可能で、
それ以外の人には読めないようにしておくというものです。
このファイル本体、あるいは ~/.ssh ディレクトリ、あるいはそのユー
ザのホームディレクトリに対して他のユーザが書き込み可能になってい
る場合、権限のないユーザでもこのファイルを変更あるいは置き換える
ことができていまいます。このような場合、 sshd は StrictModes が
``no'' に設定されていない限り、このファイルの内容を使用しません。
このファイルを推奨されるパーミッションにするには、以下のように実
行します: ``chmod go-w ~/ ~/.ssh ~/.ssh/authorized_keys''
~/.ssh/environment
このファイルは (存在している場合)、ログイン時に環境変数に読み込ま
れます。これが含んでいてよいのは、空行、( `#' で始まる) コメント
行、および ``変数名=値'' の形式の代入行だけです。このファイルはそ
のユーザにのみ書き込み可能にしておいてください。他の人が読めるよ
うにしておく必要はありません。環境変数の変更はデフォルトでは禁止
されており、これを許可するには PermitUserEnvironment 項目を設定す
る必要があります。
~/.ssh/known_hosts
そのユーザがこれまでにログインしたすべてのホストのホスト鍵で、シ
ステム全体で使われる /etc/ssh/ssh_known_hosts の一覧に含まれてい
ないものが格納されています。このファイルの形式は上で説明されてい
ます。これらのファイルは root や所有者にのみ書き込み可能にしてお
くべきですが、誰にでも読めるようにしておく必要はありません。
~/.ssh/rc
ユーザのホームディレクトリがアクセス可能になる前に実行すべき初期
化作業が格納されています。このファイルの形式は上で説明されていま
す。これらのファイルは所有者にのみ書き込み可能にしておくべきで
す。誰にでも読めるようにしておく必要はありません。
/etc/hosts.allow
/etc/hosts.deny
このファイルは tcp-wrappers によるアクセス制限を定義しています。
詳しい説明は hosts_access(5) を参照してください。
/etc/hosts.equiv
このファイルはホストベースド認証 (host-based authentication -- 詳
しくは ssh(1) を参照) で使われます。このファイルは root のみ書き
込み可能にしておくべきです。
/etc/moduli
Diffie-Hellman 鍵交換 (Diffie-Hellman Group Exchange) で使われ
る、Diffie-Hellman 群を格納します。このファイルの形式は moduli(5)
で説明されています。
/etc/motd
motd(5) を参照してください。
/etc/nologin
このファイルが存在していると、 sshd は root を除くすべてのユーザ
のログインを拒否します。このファイルの内容は root 以外でログイン
しようとして拒否された人に対して表示されます。このファイルは誰に
でも読めるようになっている必要があります。
/etc/shosts.equiv
これは hosts.equiv とまったく同じように扱われます。しかしこれは
rlogin/rsh から使われることなくホストベースド認証を許可することが
できます。
/etc/ssh/ssh_host_key
/etc/ssh/ssh_host_dsa_key
/etc/ssh/ssh_host_rsa_key
これら 3 つのファイルはホストの秘密鍵を格納します。このファイルは
root が所有し、 root だけが読み込み可能にすべきであり、これ以外の
誰にも読ませてはいけません。 sshd はこのファイルが誰にでも読める
ようになっていると起動しないので注意してください。
/etc/ssh/ssh_host_key.pub
/etc/ssh/ssh_host_dsa_key.pub
/ssh/etc/ssh_host_rsa_key.pub
これら 3 つのファイルはホスト鍵の公開鍵部分を格納します。このファ
イルは誰にでも読めるようになっている必要がありますが、書き込める
のは root だけにしてください。この内容は秘密鍵のファイルと対応し
ています。このファイルが実際に使われることはありません。これは単
にユーザの便宜をはかるためだけに存在し、ユーザはこれを
known_hosts ファイルにコピーすることができます。これら 2 つのファ
イル (秘密鍵と公開鍵) は ssh-keygen(1) を使って生成することができ
ます。
/etc/ssh/ssh_known_hosts
システム全体で使われるホスト鍵の一覧です。このファイルはシステム
管理者によって用意され、その組織のすべてのマシンのホスト鍵を含ん
でいるべきです。このファイルの形式は上で説明されています。これら
のファイルは root や所有者にのみ書き込み可能にしておくべきであ
り、誰にでも読めるようになっている必要があります。
/etc/ssh/sshd_config
sshd の設定ファイルです。このファイルの形式と設定項目は sshd_con-
fig(5) で説明されています。
/etc/ssh/sshrc
~/.ssh/rc に似ています。これはそのマシン全体にわたってログイン時
の初期化を指定するのに使われます。これは root のみ書き込み可能に
しておき、誰からも読めるようにしておくべきです。
/var/empty
sshd が特権分離の際に、認証前の段階で使用する chroot(2) 用のディ
レクトリです。このディレクトリはどんなファイルも含んでいてはなら
ず、所有者は root で、他の人あるいはグループが書きこめるように
なっていてはいけません。
/var/run/sshd.pid
現在、接続を受けつけている sshd のプロセス ID が入っています (複
数の sshd が異なるポートで走っているときは、最後に開始したプロセ
スの ID が入ります)。このファイルの内容は機密事項ではなく、誰でも
読めるようにしてかまいません。
関連項目
scp(1), sftp(1), ssh(1), ssh-add(1), ssh-agent(1), ssh-keygen(1),
ssh-keyscan(1), chroot(2), hosts_access(5), login.conf(5), moduli(5),
sshd_config(5), inetd(8), sftp-server(8)
作者
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 が特権分離のサポートに貢献しました。
警告
rshd 、 rlogind 、 および rexecd を禁止しないかぎり (つまりこれは rlogin
および rsh でそのマシンにログインすることを完全に禁止することになりま
す)、システムのセキュリティは改善されませんので注意してください。