日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
SSHD(8) FreeBSD システム管理者マニュアル SSHD(8) 名称 sshd -- OpenSSH SSH デーモン 書式 sshd [-46DdeiqTt] [-C connection_spec] [-c host_certificate_file] [-E log_file] [-f config_file] [-g login_grace_time] [-h host_key_file] [-o option] [-p port] [-u len] 解説 sshd (OpenSSH デーモン) は、ssh(1) のためのデーモンプログラムです。これら のプログラムは、ともに rlogin と rsh を置き換え、安全でないネットワーク上 で 2 つの信頼されていないホスト間の安全な暗号化通信を提供します。 sshd は、クライアントからの接続を listen (接続を受け付け) します。それ は、通常 /etc/rc.d/sshd からブートで開始されます。それは、着信接続ごとに 新しいデーモンをフォーク (fork) します。フォークされたデーモンは、鍵の交 換、暗号化、認証、コマンド実行とデータ交換を扱います。 コマンド行のオプションまたは設定ファイル (デフォルトで sshd_config(5)) を 使用して sshd を設定することができます。コマンド行のオプションは、設定 ファイルで指定された値を上書きします。sshd は、それが開始された、名前とオ プションで、例えば、/usr/sbin/sshd、それ自体を実行することによって、ハン グアップシグナル SIGHUP を受け取るとき、その設定ファイルを再読み込みしま す。 オプションは、次の通りです: -4 sshd が、IPv4 アドレスのみを使用することを強制します。 -6 sshd が、IPv6 アドレスのみを使用することを強制します。 -C connection_spec -T 拡張テストモードを使用するための接続パラメータを指定します。提 供されるなら、設定が標準出力に書き込まれる前に、指定されたユー ザ、ホスト、とアドレスに適用される設定ファイルの任意の Match 指示 は、設定されます。接続パラメータは、keyword=value の組で提供され ます。キーワードは、``user'', ``host'', ``laddr'', ``lport'' と ``addr'' です。すべてが必要であり、複数の -C オプション、または、 コンマで区切られたリストとして、順不同で供給されます。 -c host_certificate_file 鍵交換の間に、sshd を識別する証明書ファイルのパスを指定します。証 明書ファイルは、-h オプションまたは HostKey 設定指示を使用して指 定されるホスト鍵ファイルにマッチしなければなりません。 -D このオプションが指定されるとき、sshd は、デタッチせず、デーモンに なりません。これは、sshd の容易な監視を許可します。 -d デバッグモード。サーバは、標準エラーに冗長なデバッグ出力を送り、 バックグラウンドにそれ自体を置きません。また、サーバは、フォーク (fork) せず、1 つの接続のみを処理するでしょう。このオプションは、 サーバのためのデバッグのみを対象にしています。複数の -d オプショ ンは、デバッグレベルを増加させます。最大は、3 です。 -E log_file システムログの代わりに log_file にデバッグログを追加します。 -e システムログの代わりに標準エラーににデバッグログを書き込みます。 -f config_file 設定ファイルの名前を指定します。デフォルトは、 /etc/ssh/sshd_config です。sshd は、設定ファイルがないなら、開始 することを拒否します。 -g login_grace_time クライアントが自分自身を認証するのにかかる猶予時間を与えます (デ フォルトは、120 秒)。クライアントがこの時間内にユーザを認証できな かった場合、サーバは、接続を切って終了します。0 を値として与える と猶予は、無限になります。 -h host_key_file ホスト鍵が読み込まれるファイルを指定します。sshd がルート (root) (通常、ホスト鍵ファイルは、ルート以外の誰によっても通常読み込み可 能でないので) として実行されないなら、このオプションが、与えられ なければなりません。デフォルトは、/etc/ssh/ssh_host_dsa_key, /etc/ssh/ssh_host_ecdsa_key, /etc/ssh/ssh_host_ed25519_key と /etc/ssh/ssh_host_rsa_key です。異なるホスト鍵のアルゴリズムのた めの、複数のホスト鍵ファイルを持っていることは可能です。 -i sshd が inetd(8) から実行されていることを指定します。 -o option 設定ファイルで使用される形式でオプションを与えるために使用するこ とができます。これは、個別のコマンド行フラグがないオプションを指 定するために役に立ちます。オプションの完全な詳細とそれらの値につ いては、sshd_config(5) を参照してください。 -p port サーバが接続を listen (接続を受け付け) するポートを指定します (デ フォルトは、22)。複数のポートオプションが許可されます。Port オプ ションがある設定ファイルで指定されたポートは、コマンド行のポート が指定されるとき、無視されます。ListenAddress オプションを使用し て指定されたポートは、コマンド行のポートを上書きします。 -q 静かなモード。システムログに何も送られません。通常、各接続の開 始、認証と終了は、ログ記録されます。 -T 拡張テストモード。設定ファイルの正当性をチェックし、有効な設定を stdout に出力して、終了します。オプションで、Match 規則は、1 つ以 上の -C オプションを使用して接続パラメータを指定することによっ て、適用されます。 -t テストモード。設定ファイルと鍵の健全性の有効性だけをチェックしま す。これは、設定オプションを変更するときに、確実に sshd を更新す るために役に立ちます。 -u len このオプションは、リモートホスト名を保持する utmp 構造体のフィー ルドのサイズを指定するために使用されます。解決されたホスト名が len より長いなら、ドット付き 10 進数値が、代わりに使用されます。 これによって、このフィールドをオーバーフローする、非常に長いホス ト名があるホストを、まだユニークに識別することができます。-u0 を 指定することは、ドットが付けられた 10 進数のアドレスが utmp ファ イルに置かれるべきであることを示します。また、-u0 は、認証メカニ ズムまたは設定がそれを要求しないなら、sshd が DNS 要求をするのを 防ぐために使用されます。DNS を要求する認証メカニズムは、 HostbasedAuthentication と鍵ファイルの from="pattern-list" オプ ションを使用することを含みます。DNS を要求する設定オプションは、 AllowUsers または DenyUsers で USER@HOST パターンを使用することを 含みます。 認証 OpenSSH SSH デーモンは、SSH プロトコル 2 だけをサポートしています。各ホス トには、ホスト特有の鍵があり、ホストを識別するために使用されます。クライ アントが接続するときはいつでも、デーモンは、その公開ホスト鍵に応答しま す。クライアントは、鍵が変更されていないことを検証するためにホスト鍵とそ れ自体のデータベースを比較します。forward security は、Diffie-Hellman 鍵 共有を通して提供されています。(訳注: forward security は、将来、鍵が破ら れても現在の通信の秘匿性が保たれる特性) この鍵共有は、共有されたセッショ ン鍵をもたらします。セッションの残りは、現在 128 ビットの AES、Blowfish、 3DES、CAST128、Arcfour、192 ビットの AES、または 256 ビットの AESの共通暗 号を使用して暗号化されます。クライアントは、サーバによって提供されたもの から使用する暗号化アルゴリズムを選択します。さらに、セッションの整合性 は、暗号のメッセージ認証コード (hmac-md5, hmac-sha1, umac-64, umac-128, hmac-ripemd160, hmac-sha2-256 または hmac-sha2-512) によって提供されてい ます。 最後に、サーバとクライアントは、認証対話に入ります。クライアントは、ホス トベースの認証、公開鍵の認証、チャレンジレスポンス認証、またはパスワード 認証を使用して、それ自体を確証しようと試みます。 認証タイプにかかわらず、アカウントは、それがアクセス可能であるか保証する ためにチェックされます。アカウントは、それがロックされているか、DenyUsers にリストされいるか、またはそのグループが DenyGroups にリストされているな ら、アクセス可能ではありません。ロックされたアカウントの定義は、システム 依存です。いくつかのプラットフォームは、それらの独自のアカウントデータ ベース (例、AIX) があり、いくらかは、passwd フィールド (Solaris と UnixWare で `*LK*'、HP-UX で `*'、Tru64 で `Nologin' を含み FreeBSD で `*LOCKED*' を先導し、とほとんどの Linux で `!' を先導して) を修正します。 公開鍵をまだ許可している間にアカウントのためのパスワード認証を無効にする 要求があるなら、passwd フィールドは、これらの値 (例えば、`NP' または `*NP*') 以外の何かに設定されるべきです。 クライアントそれ自体の認証が成功するなら、セッションを準備するための対話 に入ります。現時点では、クライアントは、疑似 tty の割り付け、X11 接続の転 送、TCP 接続の転送、または安全なチャネルを介して認証エージェント接続の転 送のようなものを要求することができます。 この後、クライアントは、シェルを要求するか、またはコマンドを実行します。 次に、両側は、セッションモードを入ります。このモードでは、どちらの側もい つでもデータを送信することができ、そのようなデータは、サーバ側では、シェ ルまたはコマンドの間で、クライアント側では、ユーザ端末の間で転送されま す。 ユーザのプログラムが終了し、すべての転送された X11 と他の接続がクローズさ れたとき、サーバは、コマンド終了状態をクライアントに送信し、両側は、終了 します。 ログインプロセス ユーザが成功してログインするとき、sshd は、次のことを行います: 1. tty にログインしていて、コマンドが指定されていないなら、最後の ログイン時間と /etc/motd (設定ファイルで、または ~/.hushlogin によって阻止されていなかったなら。「関連ファイル」セクションを 参照) を印刷 (表示) します。 2. tty にログインしているなら、ログイン時間を記録します。 3. /etc/nologin と /var/run/nologin をチェックします。存在するな ら、それは、内容を印刷 (表示) し、(root でないならば) 終了しま す。 4. 通常のユーザ特権で実行するように変更します。 5. 基本的な環境変数をセットアップします。 6. ファイル ~/.ssh/environment を読み込み、それが存在するなら、 ユーザは、それらの環境変数を変更することを許可されます。 sshd_config(5) の PermitUserEnvironment オプションを参照してく ださい。 7. ユーザのホームディレクトリに変更します。 8. ~/.ssh/rc が存在し、sshd_config(5) PermitUserRC オプションが設 定されているなら、それを実行します。そうでなければ、 /etc/ssh/sshrc が存在するなら、それを実行します。そうでなけれ ば、xauth(1) を実行します。``rc'' ファイルは、標準入力で X11 認証プロトコルとクッキー (cookie) を与えられます。下記の 「SSHRC」を参照してください。 9. ユーザのシェルまたはコマンドを実行します。すべてのコマンドは、 システムのパスワードデータベースで指定されるようにユーザのログ インシェルの下で実行されます。 SSHRC ファイル ~/.ssh/rc が存在しているなら、環境ファイルを読み込んだ後で、ユー ザのシェルまたはコマンドを開始する前に、sh(1) は、それを実行します。その スクリプトは、標準出力 (stdout) に何も出力してはいけません。代わりに標準 エラー (stderr) を使用しなければなりません。X11 転送が使用中であるなら、 標準入力 (と、環境変数の DISPLAY) で "proto クッキー" の組を受け付けま す。sshd が X11 クッキーを追加するために xauth を自動的に実行しないので、 スクリプトは、xauth(1) を呼び出さなければなりません。 このファイルの主要な目的は、ユーザのホームディレクトリがアクセス可能とな る前に必要な何らかの初期化ルーチンを実行することです。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 と ~/.ssh/authorized_keys2 です。ファイルの各行 は、1 つの鍵を含んでいます (空行と `#' で始まる行は、コメントとして無視さ れます)。公開鍵は、次の空白で区切られたフィールドから成ります: オプショ ン、鍵の種類 (keytype)、base64 でエンコードされた鍵、コメント。オプション フィールドは、省略可能です。鍵の種類は、``ecdsa-sha2-nistp256'', ``ecdsa sha2-nistp384'', ``ecdsa-sha2-nistp521'', ``ssh-ed25519'', ``ssh-dss'' ま たは ``ssh-rsa'' です。コメントフィールドは、何のためにも使用されません (が、鍵を識別するためにユーザに便利であるかもしれません)。 このファイルの行は、8 キロビットまでの DSA 鍵と 16 キロビットまでの RSA 鍵を許可する 8 キロバイトの制限まで (公開鍵のエンコードのサイズのために) 数百バイトの長さを指定することができることに注意してください。利用者は、 それらをタイプしたくありません。代わりに、id_dsa.pub, id_ecdsa.pub, id_ed25519.pub または id_rsa.pub ファイルをコピーし、それを編集します。 sshd は、768 ビットの最小の RSA 鍵の係数 (modulus) サイズを強制します。 (存在するなら) オプションは、コンマで区切られたオプションの指定から成りま す。空白は、ダブルクォート内を除いて、許可されません。次のオプション指定 が、サポートされています (オプションのキーワードが大文字小文字を区別しな いことに注意してください): agent-forwarding 以前に restrict オプションによって無効にされた認証エージェント転 送を有効にします。 cert-authority リストされた鍵がユーザ認証のために署名された証明書を有効にするた めに信頼される認証機関 (CA) であると指定します。 証明書は、これらの鍵のオプションと同様にアクセス制限をエンコード します。証明書制限と鍵のオプションの両方が存在しているなら、2 つ の最も制限している結合 (union) が適用されます。 command="command" この鍵が認証のために使用されるときはいつでも、コマンドが実行され ることを指定します。ユーザ (もしあるなら) によって供給されたコマ ンドは、無視されます。コマンドは、クライアントが pty を要求するな ら、pty で実行されます ; そうでなければ、それは、tty なしで実行さ れます。8 ビットクリーンのチャネルが必要であるなら、pty を要求し てはならないか、または no-pty を指定するべきです。引用は、バック スラッシュでそれを引用することによってコマンドに含められます。 このオプションは、特定の操作だけを実行する特定の公開鍵を制限する ために役に立ちます。使用例は、リモートのバックアップを許可し、他 は何も許可しない鍵です。クライアントは、例えば、restrict (制限) 鍵オプションを使用して、それらが明示的に禁止されるまで、TCP およ び X11 転送を指定することに注意してください。 クライアントによって元々供給されたコマンドは、 SSH_ORIGINAL_COMMAND 環境変数で利用可能です。このオプションは、 シェル、コマンドまたはサブシステムの実行に適用されることに注意し てください。また、このコマンドは、sshd_config(5) ForceCommand ディレクティブによって取って代わられることに注意してください。 コマンドが指定されて、強制コマンドが、認証のために使用される証明 書に組み込まれているなら、証明書は、2 つのコマンドが同一であるな ら、受け付けられます。 environment="NAME=value" この鍵を使用してログインするとき、文字列が環境変数に追加されるこ とを指定します。この方法で設定された環境変数は、他のデフォルトの 環境値を上書きします。このタイプの複数のオプションが許可されま す。環境変数の処理は、デフォルトで無効にされ、 PermitUserEnvironment オプションによって制御されます。 from="pattern-list" 公開鍵認証に加えて、リモートホストの標準の名前か、またはその IP アドレスのどちらかが、パターンのコンマで区切られたリストに存在し ていなければならないことを指定します。パターンの詳細については、 ssh_config(5) の「パターン」を参照してください。 ホスト名またはアドレスに適用されるワイルドカードマッチングに加え て、from 節 (stanza) は、CIDR address/masklen 記法を使用して IP アドレスとマッチします。 このオプションの目的は、状況に応じてセキュリティを向上することで す: それ自体による公開鍵認証は、(鍵を除いて) ネットワーク、ネーム サーバまたはその他のものを信用しません。しかしながら、誰かがどう にかして鍵を盗んだなら、その鍵で、侵入者が世界のどこからでもログ インすることを可能にします。この追加オプションで、盗まれた鍵を使 用することをより難しくします (単にその鍵に加えて、ネームサーバ、 および、ルータを脆弱にしなければならなりません)。 no-agent-forwarding この鍵が認証に使用されるとき、認証エージェントの転送を禁止しま す。 no-port-forwarding この鍵が認証のための使用されるとき、TCP 転送を禁止します。クライ アントによって要求されるあらゆるポートの転送は、エラーを返しま す。これは、例えば、command オプションでの接続で、使用されます。 no-pty tty の割り付けを抑制します (pty を割り付ける要求は、失敗します)。 no-user-rc ~/.ssh/rc の実行を無効にします。 no-X11-forwarding この鍵が認証のために使用されるとき、X11 転送を禁止します。クライ アントによって要求されるあらゆる X11 転送は、エラーを返します。 permitopen="host:port" 指定されたホストとポートのみに接続するような、ssh(1) -L でローカ ルなポート転送を制限します。角括弧でアドレスを囲むことによって、 IPv6 アドレスを指定することができます。複数の permitopen オプショ ンは、コンマによって区切られて適用されます。パターンマッチング は、指定されたホスト名で実行されず、それらは、リテラルのドメイン またはアドレスでなければなりません。* のポート指定は、あらゆる ポートと一致します。 port-forwarding 以前に restrict オプションによって無効にされたポート転送を有効に します。 principals="principals" cert-authority 行において、コンマで区切られたリストとして証明書の 認証のために許可されたプリンシパルを指定します。リストから少なく とも 1 つの名前が受け付けられる証明書のためにプリンシパルの証明書 のリストに現れなければなりません。このオプションは、cert- authority オプションを使用する信頼されている証明書の署名者として マークされない鍵に対して無視されます。 pty 以前に restrict オプションによって無効にされた tty の割り付けを許 可します。 restrict すべての制限を有効にします、すなわち、~/.ssh/rc の無効にされた PTY 割り付けと実行と同様に、無効のポート、エージェントと X11 転 送。なんらかの将来の制限のケーパビリティが authorized_key ファイ ルに追加されるなら、それらは、この設定に含められます。 tunnel="n" サーバに tun(4) デバイスを強制します。このオプションがなければ、 クライアントがトンネルを要求するなら、次の利用可能なデバイスを使 用します。 user-rc 以前の restrict オプションによって無効にされた ~/.ssh/rc の実行を 有効にします。 X11-forwarding 以前に restrict オプションによって無効にされた X11 転送を許可しま す。 例の 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 restrict,command="uptime" ssh-rsa AAAA1C8...32Tv== user@example.net restrict,pty,command="nethack" ssh-rsa AAAA1f8...IrrC5== user@example.net ssh_known_hosts ファイルの形式 /etc/ssh/ssh_known_hosts と ~/.ssh/known_hosts ファイルは、すべての既知の ホストのためのホストの公開鍵を含んでいます。グローバルファイルは、管理者 (省略可能) によって準備されるべきで、ユーザごとのファイルは、自動的に保守 されます: ユーザが未知のホストに接続するときはいつでも、その鍵は、ユーザ ごとのファイルに追加されます。 これらのファイルの各行は、次のフィールドを含んでいます: マーカ (オプショ ン)、ホスト名、鍵のタイプ、base64 エンコード鍵、コメント。フィールドは、 空白によって区切られます。 マーカは、オプションですが、それが存在するなら、行が認証機関 (CA) 鍵を含 むことを示すために ``@cert-authority''、または行に含まれている鍵が取り消 されることを示すために、``@revoked'' の 1 つでなけれはなりません、そし て、決して、受け付けてはいけません。1 つのマーカだけが、鍵の行で使用され るべきです。 ホスト名は、ワイルドカードとして動作するパターン (`*' と `?' のコンマで区 切られたリストです。各パターンは、順番に (クライアントを確証するとき) 正 式のホスト名、または (サーバを確証するとき) ユーザに供給された名前と照合 されます。また、パターンは、否定を示すために `!' によって先導されます: ホ スト名が否定されたパターンと一致するなら、たとえ行の別のパターンと一致し たとしても、それは、(その行によって) 受け付けられません。ホスト名またはア ドレスは、オプションで `[' と `]' 括弧で囲まれ、次に `:' と標準でないの ポート番号が続きます。 代わりに、万一ファイルの内容が公開されるならば、ホスト名は、ホスト名とア ドレスを隠すハッシュされた形式で格納されます。ハッシュされたホスト名は、 `|' 文字で始まります。1 つのハッシュされたホスト名だけが、単一の行に現 れ、上記の否定またはワイルドカード演算子のいずれも適用されません。 鍵の種類 (keytype) と base64 エンコード鍵は、ホスト鍵から直接取られます。 例えば、/etc/ssh/ssh_host_rsa_key.pub から、それらを取得することができま す。オプションのコメントフィールドは、行の終りまで続き、使用されません。 `#' で始まる行と空行は、コメントとして無視されます。 ホスト認証を実行するとき、マッチする行に適切な鍵があるなら、認証は、受け 付けられます。正確にマッチするもの、またはサーバが認証のための証明書を提 示するなら、証明書に署名された認証機関の鍵のいずれかです。鍵が認証機関と して信頼されるために、上で説明された ``@cert-authority'' マーカを使用しな ければなりません。 また、known host ファイルは、例えば、関連秘密鍵が盗まれたことが知られると き、取り消される鍵をマークするための機能を提供しています。取り消される鍵 は、鍵の行の始めで ``@revoked'' マーカをを含むことによって、指定され、認 証のため、または認証機関として決して受け付けられませんが、それらに遭遇す るとき、代わりに ssh(1) から警告を生成します。 同じ名前のためのいくつかの行または異なるホスト鍵があることは許容されてい ます (が、推奨されていません)。これは、異なるドメインからのホスト名の簡潔 な形式がファイルに入れられるとき、必ず起こります。ファイルが矛盾する情報 を含むこともありえます。認証は、どちらかのファイルから有効な情報を見つけ ることができるなら、受け付けられます。 これらのファイルの行は、通常何百文字の長さで、間違いなく手によってホスト 鍵をタイプインしたくないことに注意してください。どちらかといえば、ssh- keyscan(1) または、例えば、/etc/ssh/ssh_host_rsa_key.pub を取ることによっ て、そして先頭にホスト名を追加してスクリプトによってそれらを生成します。 また、ssh-keygen(1) は、ホスト名と一致するホストを削除して、すべてのホス ト名をそれらのハッシュされた表現に変換することを含んで、 ~/.ssh/known_hosts のためのいくつかの基本的な自動編集を提供します。 例の 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.....= # A revoked key @revoked * ssh-rsa AAAAB5W... # A CA key, accepted for any host in *.mydomain.com or *.mydomain.org @cert-authority *.mydomain.org,*.mydomain.com ssh-rsa AAAAB5W... 関連ファイル ~/.hushlogin このファイルは、PrintLastLog と PrintMotd がそれぞれ、有効にされ るなら、最後のログイン時間と /etc/motd を印刷することを抑制するた めに使用されます。それは、Banner (バナー) によって指定されたバ ナーの印刷を抑制しません。 ~/.rhosts このファイルは、ホストに基づいた認証のために使用されます (詳細に ついては、ssh(1) を参照してください)。いくつかのマシンでは、ユー ザのホームディレクトリが NFS パーティションにあるなら、sshd が、 root として読み込むので、このファイルは、すべての人に読み込み可能 である必要がります。さらに、このファイルは、ユーザが所有していな ければならなくて、他の誰のためにも書き込みパーミッションがあって はなりません。ほとんどのマシンのためにお勧めのパーミッションは、 ユーザが、読み込み書き込み可能で、他のものによるアクセス不可で す。 ~/.shosts このファイルは、まさに .rhosts と同じように使用されますが、 rlogin/rsh でのログインを許さず、ホストベースド認証を許可します。 ~/.ssh/ このディレクトリは、すべてのユーザ特有の設定と認証情報のためのデ フォルト位置です。このディレクトリの全体の内容を秘密にするという 一般的な要件は、ありませんが、お勧めのパーミッションは、ユーザの ために read/write/execute (読み込み/書き込み/実行)で、他のものに よるアクセスを不可能とすることです。 ~/.ssh/authorized_keys このユーザとしてログインするために使用することができる公開鍵 (DSA, ECDSA, Ed25519, RSA) のリストです。このファイルの形式は、上 で説明されています。ファイルの内容は、大変神経をとがらせる必要は ありませんが、お勧めのパーミッションは、ユーザのために読み込み書 き込み可能で、他のものには、アクセス不可です。 このファイル、~/.ssh ディレクトリ、またはユーザのホームディレクト リが他のユーザによって書き込み可能であるなら、このファイルは、権 限のないユーザによって変更されるか、または置き換えられるかもしれ ません。この場合は、StrictModes オプションが ``no'' に設定されて いななら、sshd は、それが使用されることを許可しません。 ~/.ssh/environment このファイルは、(存在していれば) ログイン時に環境変数に読み込まれ ます。これが含んでいてよいのは、空行、コメント行 (`#' で始まる)、 および ``変数名=値'' の形式の代入行だけです。このファイルは、その ユーザにのみ書き込み可能にしておいてください。べつに他人が読める ようにしておく必要もありません。環境変数の変更は、デフォルトで は、禁止されており、これを許可するには、PermitUserEnvironment を 設定する必要があります。 ~/.ssh/known_hosts 知られているホスト鍵のシステム全体のリストでまだ含まれていない、 ユーザがこれまでログインしたすべてのホストのためのホスト鍵のリス トを含んでいます。このファイルの形式は、上で説明されています。こ のファイルは、root と所有者のみ書き込み可能であるべきですが、すべ ての人に読み込み可能である必要はありません。 ~/.ssh/rc ユーザのホームディレクトリがアクセス可能となる前に、実行される初 期化ルーチンを含んでいます。このファイルは、ユーザによってのみ書 き込み可能であるべきで、他の誰でも読み込み可能である必要はありま せん。 /etc/hosts.allow /etc/hosts.deny tcp-wrapper によって実行されるべきであるアクセス制御がここで定義 されています。詳細は、hosts_access(5) で説明されています。 /etc/hosts.equiv このファイルは、ホストベースド認証のためのものです (ssh(1) 参 照)。それは、root によってのみ書き込み可能であるべきです。 /etc/moduli "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_dsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key /etc/ssh/ssh_host_rsa_key これらのファイルは、ホスト鍵の秘密部分を含んでいます。これらの ファイルは、root によってのみ所有され、root によってのみ読み込み 可能で、他のユーザには、アクセス不可能であるべきです。これらの ファイルがグループでアクセス可能、または全ての人がアクセス可能で あるなら sshd は、起動しないことに注意してください。 /etc/ssh/ssh_host_dsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ed25519_key.pub /etc/ssh/ssh_host_rsa_key.pub これらのファイルは、ホスト鍵の公開部分を含んでいます。これらの ファイルは、全ての人に読み込み可能ですが、root によってのみ書き込 み可能であるべきです。それらの内容は、それぞれの秘密部分に適合す るべきです。これらのファイルは、実際に何にも使用されません。それ らは、known hosts ファイルにそれらの内容をコピーすることができる よう、ユーザの利便性のために提供されています。これらのファイル は、ssh-keygen(1) を使用して作成されます。 /etc/ssh/ssh_known_hosts 知られているホスト鍵のシステム全体リストです。このファイルは、組 織内のすべてのマシンの公開ホスト鍵を含むようにシステム管理者に よって準備されるべきです。このファイルの形式は、上で説明されま す。このファイルは、root と所有者のみのよって書き込み可能であるべ きで、すべての人に読み込み可能であるべきです。 /etc/ssh/sshd_config sshd のための設定データを含んでいます。ファイル形式と設定オプショ ンは、sshd_config(5) で説明されています。 /etc/ssh/sshrc ~/.ssh/rc と同様で、マシン特有の全体的なログイン時間の初期化処理 を指定するために使用することができます。このファイルは、root に よって書き込み可能で、すべての人に読み込み可能であるべきです。 /var/empty 前認証フェーズで特権分離の間に sshd によって使用される chroot(2) ディレクトリ。このディレクトリは、どんなファイルも含むべきでな く、root によって所有され、グループまたはすべての人に書き込み可能 であってはなりません。 /var/run/sshd.pid 接続のために (同時に異なったポートで実行されるいくつかのデーモン があるなら、最後に開始されたプロセス ID を含んでいます) listen し ている 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 を作成しました。Markus Friedl は、SSH プロトコルバー ジョン 1.5 と 2.0 のためのサポートを寄贈しました。Niels Provos と Markus Friedl は、特権分離のためのサポートを寄贈しました。 FreeBSD 11.2 June 30, 2018 FreeBSD 11.2