EN JA
SSHD_CONFIG(5)
SSHD_CONFIG(5) FreeBSD File Formats Manual SSHD_CONFIG(5)

名称

sshd_configOpenSSH SSH デーモンの設定ファイル

書式

/etc/ssh/sshd_config

解説

sshd(8) は、 /etc/ssh/sshd_config (または、コマンド行で -f で指定したファイル) から設定データを読み込みます。ファイルは、1 行ごとに ``キーワード-引数'' のペアを含んでいます。‘ #’で始まる行と空行は、コメントとして解釈されます。オプションで、引数は、空白を含む引数を表すために、二重引用符 (") で囲まれます。

指定できるキーワードとその意味は、次の通りです (キーワードは、大文字小文字を区別せず、引数は、大文字小文字を区別することに注意してください):

AcceptEnv (受け付ける環境変数)
クライアントから送られた環境変数のうち、どれをそのセッションの environ(7) にコピーするかを指定します。クライアント側をどのように設定するかについては、 ssh_config(5)SendEnv 項目を参照してください。環境変数の受け渡しはプロトコルバージョン 2 でのみサポートされています。環境変数は名前で指定します。名前にはワイルドカード文字‘ *’または‘ ?’を含むことができます。複数の環境変数を指定する場合は空白文字で区切るか、または複数の AcceptEnv 項目を指定します。警告: いくつかの環境変数は、制限つきの環境 (restricted environment) を迂回するのに使われることがあります。このため、この設定項目を利用する場合は、細心の注意を払ってください。デフォルトでは、いかなる環境変数も受け渡しできないようになっています。
AddressFamily (アドレスファミリ)
sshd(8) が、どのアドレスファミリを使うべきかを指定します。有効な値は、“any” (すべて)、“inet” (IPv4 のみ) または“inet6” (IPv6 のみ) です。デフォルトでは、“any”になっています。
AllowAgentForwarding (許可するエージェント転送)
ssh-agent(1) 転送が許可されているかどうか指定します。デフォルトは、“yes”です。エージェントの転送を無効にすることは、常にそれら自身の転送プログラムをインストールできるので、ユーザが、シェルへのアクセスを拒否されないなら、セキュリティが向上しないことに注意してください。
AllowGroups (許可するグループ)
空白で区切られたグループ名パターンのリストを、このキーワードに続けることができます。指定されるなら、パターンの 1 つにマッチする主要なグループと補助的なグループのリストのユーザだけがログインを許可されます。グループの名前だけが有効で、数字のグループ ID は、認識されません。デフォルトで、ログインは、すべてのグループに許可されています。 allow/deny 指示は、次の順序で処理されます: DenyUsers, AllowUsers, DenyGroups, と最後に AllowGroups です。

パターンに関する詳しい情報については、 ssh_config(5) の「パターン」を参照してください。

AllowTcpForwarding (TCP 転送の許可)
TCP 転送が許可されるかどうかを指定します。利用可能なオプションは、 TCP 転送を許可する“yes”または“all”、TCP 転送をすべて防ぐ“no”、 ( ssh(1) の観点から) ローカルな転送のみを許可する“local”、またはリモート転送のみ許可する“remote”です。デフォルトは、“yes”です。 TCP 転送を禁止しても、ユーザにシェルのアクセスを禁止しないかぎりセキュリティの向上にはならないことに注意してください。なぜならユーザはいつでも自前の転送プログラムをインストールして使うことができるからです。
AllowUsers (許可するユーザ)
空白で区切られたユーザ名パターンのリストを、このキーワードに続けることができます。指定されるなら、パターンの 1 つにマッチするユーザ名だけがログインを許可されます。ユーザの名前だけが有効で、数字のユーザ ID は、認識されません。デフォルトで、ログインは、すべてのユーザに許可されています。パターンが形式 USER@HOST をとるなら、USER と HOST は、特定のホストからの特定のユーザのログインを制限して、別々にチェックされます。 allow/deny 指示は、次の順序で処理されます: DenyUsers, AllowUsers, DenyGroups と最後に AllowGroups です。

パターンに関する詳しい情報については、 ssh_config(5) の「パターン」を参照してください。

AuthenticationMethods (認証メソッド)
ユーザがアクセスを許可されるように成功して完了しなければならない、認証メソッドを指定します。認証メソッドの名前の 1 つ以上のコンマで区切られたリストが、このオプションに続かなければなりません。成功した認証は、これらのリストの少なくとも 1 つのすべてのメソッドの完了を要求します。

例えば、“公開鍵、パスワード公開鍵、キーボード対話型”の引数は、パスワードまたはキーボード対話型認証のいずれかが続く、公開鍵認証を完了することをユーザに要求します。次が 1 つ以上のリストであるメソッドだけが、各ステージで提示されるので、この例については、公開鍵の前にパスワードまたはキーボード対話型認証を試みることはできません。

キーボードの対話式の認証について、サーバの設定によって、デバイスの識別子“bsdauth”, “pam”または“skey”が後続するコロンを追加することによって、特定のデバイスに認証を制限することもできます。例えば、“keyboard-interactive:bsdauth”は、“bsdauth”デバイスをキーボードの対話式の認証に制限します。

このオプションは、SSH プロトコル 2 のみに利用可能で、プロトコル 1 も有効にされるなら、致命的なエラーとなります。また、リストされた各認証メソッドは、設定で明示的に有効にされるべきであることに注意してください。デフォルトは、複数の認証を要求しません。単一の認証メッソドの成功した完了は、十分です。

AuthorizedKeysCommand (認証鍵のコマンド)
ユーザの公開鍵を検索するために使用されるプログラムを指定します。プログラムは、root によって所有されていなければならず、グループまたは他のもの (other) によって書き込み可能ではあってはなりません。確証されているユーザ名の単一の引数をつけて起動され、標準出力に authorized_keys 出力 ( sshd(8) の「authorized_keys ファイルの形式」を参照) の 0 以上の行を生成するべきです。 AuthorizedKeysCommand によって供給された鍵が成功してユーザを認証して認定されないなら、公開鍵の認証は、通常の AuthorizedKeysFile ファイルを使用し続けます。デフォルトで、AuthorizedKeysCommand は、実行されません。
AuthorizedKeysCommandUser (認証鍵コマンドユーザ)
AuthorizedKeysCommand が実行されるアカウントに基づいているユーザを指定します。実行している認可された鍵コマンドよりホストで他の役割がない専用のユーザを使用することが推奨されます。
AuthorizedKeysFile (authorized_keys ファイル)
ユーザ認証のために使用することができる公開鍵を含んでいるファイル名を指定します。形式は、 sshd(8) の「authorized_keys ファイルの形式」のセクションで説明されています。 AuthorizedKeysFile のファイル名中に %T が含まれている場合、その部分は接続の間別のものに置換されます。 %% は、'%' 1 文字に置換されます。 %h は認証しようとしているユーザのホームディレクトリに置換され、 %u はそのユーザのユーザ名に置換されます。この後、その絶対パスまたはユーザのホームディレクトリからの相対パスが AuthorizedKeysFile に渡されます。空白類で区切って、複数のファイルをリストすることができます。デフォルトは、“.ssh/authorized_keys .ssh/authorized_keys2”です。
AuthorizedPrincipalsFile (認証プリンシパルファイル)
証明書の認証のために受け付けられるプリンシパル名をリストするファイルを指定します。 TrustedUserCAKeys にリストされた鍵によって署名される証明書を使用するとき、このファイルは、名前をリストし、その 1 つは、それが認証のために受け付けられる証明書に現れなければなりません。名前は、 ( sshd(8) の「authorized_keys ファイルの形式」で説明される) 鍵のオプションによって先行される 1 行に 1 つでリストされます。空行と‘ #’で始まるコメントは、無視されます。

AuthorizedPrincipalsFile は、接続の設定の間に置換される形式 %T のトークンを含むかもしれません。次のトークンが定義されています: %% は、リテラルの '%' に置き換えられ、 %h は、認証されるユーザのホームディレクトリに置き換えられ、そして、 %u は、そのユーザのユーザ名に置き換えられます。展開の後に、 AuthorizedPrincipalsFile は、ユーザのホームディレクトリへのた絶対パスまたは 1 つの相対になるように取られます。

デフォルトは、“none”です、すなわち、プリンシパルファイルを使用しません–この場合、ユーザのユーザ名は、受け付けられる証明書のプリンシパルリストに現れなければなりません。 AuthorizedPrincipalsFile は、認証が TrustedUserCAKeys にリストされた CA を使用して続けるときだけ使用され、 ~/.ssh/authorized_keys を通して信頼されている認証機関で調べられませんが、 principals= 鍵オプションは、同様の機能 (詳細については、 sshd(8) を参照) を提供することに注意してください。

Banner (バナー)
指定されたファイルの内容は、認証が許可される前にリモートユーザに送信されます。引数が“none”であるなら、バナーは、表示されません。このオプションは、プロトコルバージョン 2 でのみサポートされています。デフォルトで、バナーは、表示されません。
ChallengeResponseAuthentication (チャレンジ・レスポンス認証)
チャレンジ・レスポンス認証が許可されるかどうか指定します (例えば、PAM を通してか、または login.conf(5) でサポートされる認証スタイルを通して)。デフォルトは、“yes”です。
ChrootDirectory (chroot ディレクトリ)
認証の後に chroot(2) へのディレクトリのパス名を指定します。パス名のすべての構成要素は、いかなる他のユーザまたはグループによって書き込み可能でない root で所有されているディレクトリでなければなりません。 chroot の後に、 sshd(8) は、ワーキングディレクトリをユーザのホームディレクトリに変更します。

パス名は、接続しているユーザがいったん認証されると実行時に拡張される次のトークンを含みます: %% は、リレラル '%' に置き換えられ、 %h は、認証されるユーザのホームディレクトリに置き換えられ、そして %u は、そのユーザのユーザ名に置き換えられます。

ChrootDirectory は、必要なファイルとユーザのセッションをサポートするディレクトリを含まなければなりません。対話的なセッションのために、これは、少なくともシェル、通常 sh(1)null(4), zero(4), stdin(4), stdout(4), stderr(4), arandom(4)tty(4) デバイスのような基本的な /dev ノードを必要とします。“sftp”を使用するファイル転送セッションに関して、プロセス内の sftp サーバが使用されているなら、環境の追加設定は、必要ではありませんが、ログ記録を使用するセッションは、chroot ディレクトリ中で /dev/log を必要とします (詳細については、 sftp-server(8) を参照)。

デフォルトは、 chroot(2) しません。

Ciphers (SSH2 の暗号化アルゴリズム)
プロトコルバージョン 2 で許可される暗号化アルゴリズムを指定します。複数の暗号方式は、コンマで区切られなければなりません。サポートされている暗号方式は、“3des-cbc”, “aes128-cbc”, “aes192-cbc”, “aes256-cbc”, “aes128-ctr”, “aes192-ctr”, “aes256-ctr”, “aes128-gcm@openssh.com”, “aes256-gcm@openssh.com”, “arcfour128”, “arcfour256”, “arcfour”, “blowfish-cbc”と“cast128-cbc”です。デフォルトは、次の通りです:

aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128, 
aes128-gcm@openssh.com,aes256-gcm@openssh.com, 
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc, 
aes256-cbc,arcfour
ClientAliveCountMax (クライアントの生存チェック最大カウント数)
sshd(8) が無反応のクライアントに対して client alive message (下記参照) を送ってみる最大数を指定します。 client alive message に対する応答が連続してこの回数だけなかった場合、 sshd は、接続を切り、セッションを終了します。 client alive message は、 TCPKeepAlive (下記) とはまったく違うことに注意してください。 client alive message は暗号化された経路を介して送られるので、偽造されることはありません。 TCPKeepAlive によって設定される TCP の keepalive オプションは、偽造される可能性があります。 client alive のメカニズムは、クライアントまたはサーバが、いつ接続が切れたのかを知りたいときに役立ちます。

デフォルトの値は、3 です。もし ClientAliveInterval (下記参照) が 15 に設定され、 ClientAliveCountMax がデフォルトのままである場合、これに反応できない SSH クライアントは、およそ 45秒後に接続が切られます。このオプションは、プロトコルバージョン 2 でのみ適用されます。

ClientAliveInterval (クライアントの生存チェック間隔)
sshd(8) は、一定時間ごとに、暗号化された通信路を経由してクライアントに応答を要求するメッセージ (client alive message) を送ります。その際、何もデータが送られてこなかったらタイムアウトする時間を秒数で指定します。デフォルトの値は、0 で、これはメッセージを送らないことを意味します。このオプションは、プロトコルバージョン 2 でのみサポートされています。
Compression (圧縮)
圧縮を許可するかどうか、または遅延圧縮 (そのユーザが認証されてから初めて圧縮を許可する) をおこなうかどうかを指定します。引数は、“yes”, “delayed”または“no”でなければなりません。デフォルトは、“delayed”です。
DenyGroups (拒否するグループ)
空白で区切られたグループ名パターンのリストを、このキーワードに続けることができます。ログインは、パターンの 1 つにマッチする主要なグループまたは補助的なグループのリストのユーザに対して拒否されます。グループの名前だけが有効で、数字のグループ ID は、認識されません。デフォルトで、ログインは、すべてのグループに許可されています。 allow/deny 指示は、次の順序で処理されます: DenyUsers, AllowUsers, DenyGroups と最後に AllowGroups です。

パターンに関する詳しい情報については、 ssh_config(5) の「パターン」を参照してください。

DenyUsers (拒否するユーザ)
空白で区切られたユーザ名パターンのリストを、このキーワードに続けることができます。パターンの 1 つにマッチするユーザに対して拒否されます。ユーザの名前だけが有効で、数字のユーザ ID は、認識されません。デフォルトで、ログインは、すべてのユーザに許可されています。パターンが形式 USER@HOST をとるなら、USER と HOST は、特定のホストからの特定のユーザのログインを制限して、別々にチェックされます。 allow/deny 指示は、次の順序で処理されます: DenyUsers, AllowUsers, DenyGroups と最後に AllowGroups です。

パターンに関する詳しい情報については、 ssh_config(5) の「パターン」を参照してください。

ForceCommand (強制コマンド実行)
クライアント、と存在するなら、 ~/.ssh/rc によって供給された任意のコマンドを無視して、 ForceCommand によって指定されたコマンドを強制的に実行します。コマンドは、-c オプションをつけてユーザのログインシェルを使用して呼び出されます。これは、シェル、コマンド、またはサブシステムの実行に適用されます。それは、 Match ブロックの中で最も役に立ちます。元々クライアントによって供給されたコマンドは、 SSH_ORIGINAL_COMMAND 環境変数で利用可能です。“internal-sftp”のコマンドを指定することは、 ChrootDirectory と共に使用されるとき、サポートファイルを必要としないプロセス内 sftp サーバの使用が強制されます。
GatewayPorts (ポート中継の許可)
リモートホストがクライアント側に転送されたポートに接続することを許可するかどうか指定します。デフォルトでは、 sshd(8) は、リモート転送ポートをループバックアドレスに bind します。これは他のリモートホストが、転送されたポートに接続してしまうのを防いでいます。 GatewayPorts は、 sshd にリモート転送ポートをループバックインタフェース以外のアドレスに bind させるときに使います。これによって他のホストが転送されたポートに接続できるようになります。引数の値として、転送されたポートをローカルからのみ利用可能にしたい場合は、“no”、いかなるアドレスからも利用可能にしたい場合は、“yes”、またはクライアント側に bind すべきアドレスを指定させたい場合は、“clientspecified”を指定します。デフォルトは、“no”になっています。
GSSAPIAuthentication (GSSAPI 認証)
GSSAPI ベースのユーザ認証を使用するかどうかを指定します。これはデフォルトでは、“no”になっています。注意: このオプションはプロトコルバージョン 2 のみに適用されます。
GSSAPICleanupCredentials (GSSAPI 証明書の消去)
ユーザがログアウトするときに、その証明書 (credential) キャッシュを自動的に消去するかどうかを指定します。デフォルトでは、“yes”です。注意: このオプションはプロトコルバージョン 2 のみに適用されます。
HostbasedAuthentication (ホストベースド認証の許可)
公開鍵ホスト認証が成功したときに、 rhosts または /etc/hosts.equiv 認証を許可するかどうか指定します (ホストベースド認証)。このオプションは、 RhostsRSAAuthentication (RhostsRSA 認証の許可) に似ており、プロトコルバージョン 2 のみに作用します。デフォルトの値は、“no”になっています。
HostbasedUsesNameFromPacketOnly (ホストベースド認証におけるホスト名の使用方法)
ホストベースド認証 ( HostbasedAuthentication) の間に ~/.shosts, ~/.rhosts/etc/hosts.equiv ファイルの中の名前を適合を行うとき、サーバが、名前の逆引きを実行を試みるかどうかを指定します。“yes”に設定することは、 sshd(8) がそれ自体の TCP 接続から名前を解決することを試みるよりクライアントによって供給された名前を使用することを意味します。デフォルトは、“no”です。
HostCertificate (ホスト証明書)
公開されているホスト証明書を含むファイルを指定します。証明書の公開鍵は、 HostKey によって既に指定された秘密のホスト鍵にマッチしなければなりません。 sshd(8) のデフォルトの振る舞いは、何も証明書をロードしないことです。
HostKey (ホスト鍵)
SSH によって使用される、ホスト秘密鍵を含んでいるファイルを指定します。デフォルトは、プロトコルバージョン 1 に対して /etc/ssh/ssh_host_key で、プロトコルバージョン 2 に対して /etc/ssh/ssh_host_dsa_key, /etc/ssh/ssh_host_ecdsa_key/etc/ssh/ssh_host_rsa_key です。このファイルがグループまたは他人からアクセス可能になっていると、 sshd(8) は、その使用を拒絶するので注意してください。複数のホスト鍵を使うことも可能です。“rsa1”鍵はバージョン 1 に使われ、“dsa”, “ecdsa”または“rsa”は、バージョン 2 の SSH プロトコルに使われます。また、公開ホスト鍵ファイルを代わりに指定することが可能です。この場合、秘密鍵の操作は、 ssh-agent(1) に委託されます。
HostKeyAgent
秘密ホスト鍵にアクセスするエージェントと通信するために使用される UNIX ドメインソケットを識別します。“SSH_AUTH_SOCK”が指定されるなr、ソケットの位置は、 SSH_AUTH_SOCK 環境変数から読み込まれます。
IgnoreRhosts (rhosts の無視)
RhostsRSAAuthentication または HostbasedAuthentication の各認証で、 .rhosts.shosts ファイルを使わないようにします。

この状態でも、 /etc/hosts.equiv/etc/ssh/shosts.equiv は、依然として有効です。デフォルトでは、“yes”になっています。

IgnoreUserKnownHosts (ユーザ用 known_hosts の無視)
sshd(8)RhostsRSAAuthentication または HostbasedAuthentication の間にユーザの ~/.ssh/known_hosts を無視するかどうか指定します。デフォルトは、“no”です。
IPQoS
接続のための IPv4 のサービスのタイプ (type-of-service) または DSCP のクラスを指定します。受け付けられる値は、“af11”, “af12”, “af13”, “af21”, “af22”, “af23”, “af31”, “af32”, “af33”, “af41”, “af42”, “af43”, “cs0”, “cs1”, “cs2”, “cs3”, “cs4”, “cs5”, “cs6”, “cs7”, “ef”, “lowdelay”, “throughput”, “reliability”または数値です。このオプションは、空白によって区切られた、1 つまたは 2 つの引数を取ります。 1 つの引数が指定されるなら、無条件にパケットのクラスとして使用されます。 2 つの値が指定されるなら、最初は、対話的なセッションに対して、 2 番目は、対話的でないセッションに対して自動的に選択されます。デフォルトは、対話的なセッションに対しては、“lowdelay”で、対話的でないセッションに対しては、“throughput”です。
KerberosAuthentication (Kerberos 認証)
PasswordAuthentication のためのユーザによって提供されるパスワードが Kerberos KDC を通して有効にされるかどうかを指定します。このオプションを使用するために、サーバは、KDC のアイデンティティの確認を許可する Kerberos servtab を必要とします。デフォルトは、“no”です。
KerberosGetAFSToken (Kerberos で AFS トークンを取得する)
AFS がアクティブで、そのユーザが Kerberos 5 TGT を持っている場合、そのユーザのホームディレクトリにアクセスする前に AFS トークンを取得しようとします。デフォルトは、“no”です。
KerberosOrLocalPasswd (Kerberos またはローカルパスワード)
Kerberos によるパスワード認証が失敗するなら、パスワードは、 /etc/passwd のような追加のローカルメカニズムによって認証されます。デフォルトは、“yes”です。
KerberosTicketCleanup (Kerberos チケットのクリーンアップ)
ログアウト時にユーザのチケットのキャッシュを自動的に破壊するかどうかを指定します。デフォルトは、“yes”です。
KexAlgorithms (鍵交換アリコリズム)
利用可能な KEX (Key Exchange) アルゴリズムを指定します。複数のアルゴリズムは、コンマで区切られていなければなりません。デフォルトは、“ecdh-sha2-nistp256”, “ecdh-sha2-nistp384”, “ecdh-sha2-nistp521”, “diffie-hellman-group-exchange-sha256”, “diffie-hellman-group-exchange-sha1”, “diffie-hellman-group14-sha1”, “diffie-hellman-group1-sha1”です。
KeyRegenerationInterval (鍵の再生成間隔)
プロトコルバージョン 1 では、サーバ鍵は、(一度でも使われると) ここで指定された間隔ごとに自動的に再生成されます。このように鍵を再生成する目的は、あとでそのマシンに侵入して盗聴したセッションを解読されたり、鍵を盗まれたりするのを防ぐためです。この鍵はどこにも格納されません。値として 0 を指定すると、鍵はまったく再生成されなくなります。デフォルトでは、3600 (秒) になっています。
ListenAddress (接続受付アドレス)
sshd(8) が listen する (接続を受け付ける) べきローカルアドレスを指定します。次の形式を使用することができます:

  • ListenAddress host| IPv4_addr| IPv6_addr
  • ListenAddress host| IPv4_addr: port
  • ListenAddress [ host| IPv6_addr]: port

port が指定されてないなら、sshd は、アドレスと、前に指定されたすべての Port オプションで listen します (接続を受け付けます)。デフォルトは、すべてのローカルアドレスで listen します (接続を受け付けます)。複数の ListenAddress オプションは、許可されます。さらに、 Port オプションは、ポートでない限定アドレスに対して、このオプションよりも前でなければなりません。

LoginGraceTime (ログイン猶予時間)
ユーザがログインに成功しなかったなら、この時間の後に、サーバは、接続を断ちます。値が 0 であるなら、時間の制限はありません。デフォルトは、120 秒です。
LogLevel (ログレベル)
sshd(8) からのメッセージをログ記録するとき、使用される冗長性のレベルを与えます。指定できる値は、次の通りです: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 と DEBUG3。デフォルトは、INFO です。 DEBUG と DEBUG1 は、同等です。 DEBUG2 と DEBUG3 は、それぞれ、デバッグの出力のより高いレベルを指定します。 DEBUG レベルがあるログ記録は、ユーザのプライバシを侵害し、推奨されません。
MACs (メッセージ認証コード)
利用可能な MAC (メッセージ認証コード) アルゴリズムを指定します。 MAC アルゴリズムは、データ整合性保護 (data integrity protection) のためにプロトコルバージョン 2 で使用されます。複数のアルゴリズムは、コンマで区切らなければなりません。“-etm”を含んでいるアルゴリズムは、暗号化 (encrypt-then-mac) の後に MAC を計算します。これらは、より安全であると考えられ、それらの使用は、推薦されます。デフォルトは、次の通りです:

hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com, 
umac-64-etm@openssh.com,umac-128-etm@openssh.com, 
hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com, 
hmac-ripemd160-etm@openssh.com,hmac-sha1-96-etm@openssh.com, 
hmac-md5-96-etm@openssh.com, 
hmac-md5,hmac-sha1,umac-64@openssh.com,umac-128@openssh.com, 
hmac-sha2-256,hmac-sha2-512,hmac-ripemd160, 
hmac-sha1-96,hmac-md5-96
Match (条件分岐)
条件付きブロックを導入します。 Match 行の判断基準のすべてが満たされたなら、続く行のキーワードは、別の Match 行またはファイルの終りになるまで、設定ファイルのグローバルセクションに設定されたものよりも優先します。

Match への引数は、1 つ以上の判断基準のパターンの組です。利用可能な判断基準は、 User, Group, Host, LocalAddress, LocalPortAddress です。マッチしたパターンは、単一のエントリまたはコンマで区切られたリストから成り、 ssh_config(5) の「パターン」セクションに記述されている、ワイルドカード (wildcard) と否定 (negation) オペレータを使用します。

Address のパターンは、さらに、CIDR address/masklen 形式、例えば、“192.0.2.0/24”または“3ffe:ffff::/32”、にマッチするアドレスを含んでいます。提供されたマスクの長さは、アドレスと一致していなければなりません - アドレスのために長過ぎるマスクの長さを指定すること、またはアドレスのこのホスト部分に設定されたビットが 1 なら、エラーです。例えば、それぞれ、“192.0.2.0/33”と“192.0.2.0/8”です。

キーワードの部分集合のみ Match キーワードに続く行で使用できます。利用可能なキーワードは、 AcceptEnv, AllowAgentForwarding, AllowGroups, AllowTcpForwarding, AllowUsers, AuthenticationMethods, AuthorizedKeysCommand, AuthorizedKeysCommandUser, AuthorizedKeysFile, AuthorizedPrincipalsFile, Banner, ChrootDirectory, DenyGroups, DenyUsers, ForceCommand, GatewayPorts, GSSAPIAuthentication, HostbasedAuthentication, HostbasedUsesNameFromPacketOnly, KbdInteractiveAuthentication, KerberosAuthentication, MaxAuthTries, MaxSessions, PasswordAuthentication, PermitEmptyPasswords, PermitOpen, PermitRootLogin, PermitTunnel, PubkeyAuthentication, RekeyLimit, RhostsRSAAuthentication, RSAAuthentication, X11DisplayOffset, X11ForwardingX11UseLocalHost です。

MaxAuthTries (最大認証試行回数)
1接続あたりの認証を最大で何回まで試みることができるかを指定します。ここで指定された半数以上の認証が失敗すると、それ以降の失敗はログに記録されます。デフォルトの値は、6 です。
MaxSessions (最大セッション)
ネットワーク接続毎に許可されたオープンセッションの最大数を指定します。デフォルトは、10 です。
MaxStartups (最大起動数)
認証されていない段階の接続を SSH デーモンが最大でどれだけ受けつけるかを指定します。この値を超えた (認証されていない段階の) 接続は捨てられます。この状態は、(すでに接続したクライアントの) 認証が成功するか、その LoginGraceTime (ログイン猶予時間) が切れるまで続きます。デフォルトは、10:30:100 です。

もうひとつの方法は、早いうちからランダムに接続を拒否するよう指定することです。これはこのオプションにコロンで区切った 3つの値を与えることによりおこないます。この値は、“start:rate:full” (``開始時:確率:最大数'') の形をとります (例: "10:30:60"など)。 sshd(8) は、認証されていない段階の接続が“start” (この例では、10) 個を超えると、これ以後の接続要求を“rate/100” (この例では、30%) の確率で拒否し始めます。この確率は、“full” (この例では、60) 個の接続が来るまで線形に増えつづけ、最大数に達した時点でそれ以降すべての接続を拒否するようになります。

PasswordAuthentication (パスワード認証)
パスワード認証を許可するかどうか指定します。 UsePAM 参照。デフォルトは、“no”です。
PermitEmptyPasswords (空のパスワードを許可)
パスワード認証が許可されているとき、パスワード文字列が空のアカウントに対してサーバがログインを許可するかどうか指定します。デフォルトは、“no”です。
PermitOpen (許可するポート転送)
TCP ポート転送が許された宛先を指定します。転送指定は、次の形式の 1 つでなければなりません:

  • PermitOpen host: port
  • PermitOpen IPv4_addr: port
  • PermitOpen [IPv6_addr]: port

複数の転送は、空白類でそれらを区切ることによって指定できます。すべての制限を取り除いて、すべての転送要求を可能にするために“any”の引数を使用することができます。すべての転送要求を禁止するために“none”の引数を使用することができます。デフォルトで、すべてのポート転送要求が許可されます。

PermitRootLogin (root ログイン許可)
ssh(1) を使って、root がログインできるかどうか指定します。この引数の値は、“yes”, “without-password” (パスワード認証なし)、“forced-commands-only” (強制コマンドのみ)、または“no”のいずれかです。デフォルトは、“no”です。 ChallengeResponseAuthentication が“yes”の場合、 PermitRootLogin が“without-password”に設定されていたとしても、root ユーザはそのパスワードで許可されます。

このオプションが“without-password”に設定されるなら、パスワード認証は、root に対して無効にされます。

このオプションが“forced-commands-only”に設定されるなら、root は、公開鍵認証を使ってログインできますが、その鍵に command オプションが指定されている場合にかぎります (これは通常の root ログインを許可していなくても、リモートバックアップをとりたいときなどに有用です)。 root に対してはこれ以外の認証方法はすべて禁止になります。注意: 他の認証メソッド (例えば、キーボードインタラクティブ/PAM) で root がパスワードを使用することでまだログインできます。

このオプションを“no”にすると、root のログインは許可されません。

PermitTunnel (トンネリングを許可する)
tun(4) デバイスの転送が許可されているかどうかを指定します。引数は、“yes”, “point-to-point” (レイヤ 3)、“ethernet” (レイヤ 2) または“no”でなければなりません。“yes”と指定することは、“point-to-point”と“ethernet”の両方を許可したことになります。デフォルトは、“no”です。
PermitUserEnvironment (ユーザの環境変数変更を許可する)
sshd(8)~/.ssh/environment ファイルと ~/.ssh/authorized_keys における environment= オプションを処理すべきかどうかを指定します。デフォルトでは、“no”です。環境変数の変更は、ユーザに LD_PRELOAD などの設定を使ったある種のアクセス制限を回避させてしまう可能性があります。
PidFile (pid ファイル)
SSH デーモンのプロセス ID を格納するファイルを指定します。デフォルトでは、 /var/run/sshd.pid になっています。
Port (ポート番号)
sshd(8) が接続を受けつける (listen する) ポート番号を指定します。デフォルトは、22 です。複数指定することも可能です。 ListenAddress の項も参照してください。
PrintLastLog (LastLog の表示)
ユーザが対話的にログインしたとき、 sshd(8) が、そのユーザが前回ログインした日付と時刻を印刷 (表示) すべきかどうか指定します。デフォルトでは、“yes”になっています。
PrintMotd (motd の表示)
ユーザが対話的にログインしたとき、 sshd(8)/etc/motd (今日のお知らせ) ファイルの内容を印刷 (表示) すべきかどうか指定します。 (システムによっては、これはシェルや /etc/profile に相当するものが表示します)。デフォルトは、“yes”です。
Protocol (プロトコル)
sshd(8) がサポートするプロトコルのバージョンを指定します。指定できる値は、‘1’と‘2’です。複数のバージョンをコンマで区切って指定することもできます。デフォルトは、‘2’です。ここでのプロトコルの順番は、優先度を指定するものではないことに注意してください。なぜなら複数のプロトコルがサーバで使用可能な場合、選択するのはクライアント側だからです。よって“2,1”という指定は、“1,2”と同じです。
PubkeyAuthentication (公開鍵認証)
公開鍵認証を許可するかどうか指定します。デフォルトは、“yes”です。このオプションは、プロトコルバージョン 2 にのみ適用されることに注意してください。
RekeyLimit (rekey の制限)
セッション鍵が再交渉される前に転送される最大のデータ量を指定し、オプションでセッション鍵が再交渉される前に渡される最大の時間の量が続きます。最初の引数は、バイト単位で指定され、それぞれ、キロバイト、メガバイトまたはギガバイトを示すために‘K’, ‘M’または‘G’の接尾辞を付けることができます。デフォルトは、暗号によりますが、‘1G’と‘4G’の間です。オプションの 2 番目の値は、秒単位で指定され、 「時間の形式」 セクションで文書化されたユニットのうちのいずれかを使用します。 RekeyLimit のためのデフォルト値は、rekey が、暗号のデータのデフォルトの量が送信されるか、または受信された後に、実行され、時間ベースの rekey が行なわれないことを意味する、“default none”です。このオプションは、プロトコルバージョン 2 のみに適用します。
RevokedKeys (取り消し鍵)
取り消された公開鍵を指定します。このファイルに記載された鍵は、公開鍵認証に対して拒絶されます。このファイルが読み込み可能でないなら、公開鍵認証は、すべてのユーザに対して拒絶されることに注意してください。鍵は、1 行ごとに 1 つの公開鍵をリストしいるテキストファイルとして、または ssh-keygen(1) によって生成される OpenSSH 鍵取り消しリスト (OpenSSH Key Revocation List, KRL) として、指定されます。 KRL についての詳細について、 ssh-keygen(1) の「鍵取り消しリスト」セクションを参照してください。
RhostsRSAAuthentication (rhosts-RSA 認証)
RSA ホスト間認証が成功しているとき、rhosts や /etc/hosts.equiv を使った認証をおこなってよいかどうか指定します。デフォルトは、“no”です。このオプションはプロトコルバージョン 1 にのみ適用されることに注意してください。
RSAAuthentication (RSA 認証)
純粋な RSA 認証を許可するかどうかを指定します。デフォルトは、“yes”になっています。このオプションはプロトコルバージョン 1 にのみ適用されることに注意してください。
ServerKeyBits (サーバ鍵のビット数)
プロトコルバージョン 1 で短期的に使われるサーバ鍵のビット数を指定します。最小値は、512 で、デフォルトは、1024 です。
StrictModes (厳格なモード)
sshd(8) がログインを許可する前に、ユーザのファイルとホームディレクトリの所有権とパーミッションをチェックすべきかどうかを指定します。これはふつう初心者が、しばしば自分のディレクトリを誰でも書き込めるようにしてしまう事故を防ぐために有効です。デフォルトでは、“yes”になっています。これは、パーミッションと所有権が無条件にチェックされる、 ChrootDirectory に適用されないことに注意してください。
Subsystem (サブシステム)
外部サブシステム (例えば、ファイル転送デーモンなど) を設定します。引数は、サブシステム要求のときに実行するサブシステム名と (オプションの引数をつけた) コマンドであるべきです。

コマンド sftp-server(8) は、“sftp”ファイル転送サブシステムを実装しています。

代わりに、名前“internal-sftp”は、プロセス内の“sftp”サーバを実装します。これは、異なったファイルシステムのルートをクライアントに強制するために ChrootDirectory を使用して設定を簡素化します。

デフォルトでは、サブシステムは、何も定義されていません。このオプションは、プロトコルバージョン 2 にのみ適用されることに注意してください。

SyslogFacility (syslog 機能コード)
sshd(8) からのメッセージをログ記録するとき、使用される機能 (facility) コードを与えます。指定できる値は、次の通りです: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7。デフォルトは、AUTH です。
TCPKeepAlive (TCP 接続を生かしておく)
システムが相手のマシンに TCP keepalive メッセージを送るかどうか指定します。これが送られると、接続の異常終了や相手マシンのクラッシュが正しく通知されるようになります。しかしこれを使うと、たとえ経路が一時的にダウンしていても接続が死んでいるということになってしまい、これが邪魔になる場合もあります。その一方で、もし TCP keepalive が送られないとすると、セッションは、サーバ上で永久に残ってしまことがあり、“幽霊”ユーザを居座らせてサーバ資源を消費することがあります。

デフォルトは、“yes” (TCP keepalive メッセージを送る) です。そのためクライアントはネットワークがダウンするか、リモートホストがクラッシュすると通知してきます。これは永久に残るセッションを防ぎます。

TCP Keepalive を禁止するには、この値を“no”にする必要があります。

TrustedUserCAKeys (信頼されたユーザ鍵)
認証のための署名ユーザ証明書を信頼する認証局の公開鍵を含むファイルを指定します。鍵は、1 行毎に 1 つリストされます。空行と‘ #’で始まるコメントは、許可されています。証明書が認証のために提示され、このファイルにリストされた署名 CA 鍵があるなら、証明書の主要な (principal) リストにリストされた任意のユーザのための認証のために使用されます。主要 (principal) のリストを欠いている証明書は、 TrustedUserCAKeys を使用しる認証のために許可されていないことに注意してください。証明書に関するその他の詳細については、 ssh-keygen(1) の「証明書」セクションを参照してください。
UseDNS (リモートホスト名の確認)
sshd(8) が IP アドレスからリモートホスト名を逆引き検索して得た名前を正引きして、同じ IP アドレスになるかどうか確認します。デフォルトでは、“yes”になっています。
UseLogin (login の使用)
対話的ログインセッションの際、 login(1) プログラムを使うかどうかを指定します。デフォルトでは、“no”になっています。対話的でないリモートコマンド実行のときに login(1) が使われることは決してありません。また、これが許可されていると X11Forwarding (X11 転送) は、許可されなくなるということに注意してください。なぜなら、 login(1) は、 xauth(1) クッキーの扱いを知らないからです。 UsePrivilegeSeparation が指定されている場合は、認証のあとで禁止されます。
UsePAM (PAM の使用)
Pluggable Authentication Module (PAM) インタフェースによる認証を許可します。“yes”に設定されるなら、これは、すべての認証タイプに対して PAM アカウントとセッションモジュール処理を加えて、 ChallengeResponseAuthenticationPasswordAuthentication を使用する PAM 認証を有効にします。

ふつう PAM のチャレンジ・レスポンス認証はパスワード認証と等価な役割を提供しているので、 PasswordAuthentication または ChallengeResponseAuthentication のどちらかを許可する必要があります。

UsePAM を許可した場合、 sshd(8) を root 以外の一般ユーザで走らせることはできません。デフォルトは、“yes”です。

UsePrivilegeSeparation (root 権限を分離)
sshd(8) が、受けつけるネットワークトラフィックを処理するために root 権限を分離するかどうかを指定します。これは、root 権限をもたない子プロセスをつくることによっておこなわれます。認証が成功すると、そのユーザの権限をもつ別のプロセスが新たに作られます。これの目的は、まずそうな部分を root 権限をもたないプロセスのみに限定することによって、 root 権限による被害の拡大を防ぐためです。デフォルトは、“yes”です。 UsePrivilegeSeparation が“sandbox”に設定されるなら、事前認証の特権がないプロセスは、追加の制限に従います。
VersionAddendum (バージョンに付加するもの)
オプションで、接続されたサーバによって送信される SSH プロトコルのバナーに追加するテキストを指定します。デフォルトは、“FreeBSD-20131111”です。
X11DisplayOffset (X11 ディスプレイ番号のオフセット値)
sshd(8) が X11 転送をするときに最初に使われるディスプレイ番号を指定します。これは、 sshd が X11 転送で使うディスプレイ番号が、本物の X サーバのディスプレイ番号と衝突してしまうのを防ぐためです。デフォルトの値は、10 です。
X11Forwarding (X11 転送)
X11 転送を許可するかどうかを指定します。この引数の値は、“yes”または“no”で、デフォルトは、“yes”です。

X11 転送が許可されており、転送された sshd(8) のディスプレイが任意のアドレス (下記の X11UseLocalhost 参照) からの接続を受けつけるように設定されていると、サーバやクライアントのディスプレイは余計な危険にさらされることになります。しかし、デフォルトではそうなっていません。また、認証におけるなりすまし、認証データの確認や差し替えなどがクライアント側で起こります。 X11 転送を使うセキュリティ上のリスクは、 SSH クライアントが転送を要求したときに、クライアント上の X11 サーバが攻撃にさらされるかもしれないということです ( ssh_config(5)ForwardX11 注意書きを参照)。システム管理者はクライアントがうっかり X11 を転送して、余計な危険性を増すことのないように、これをかならず“no”に設定させるような立場をとることもできます。

注意: X11 転送機能を禁止しても、ユーザが X11 の通信を転送できなくなるというわけではありません。なぜならユーザはいつでも自前の転送プログラムをインストールして使うことができるからです。 UseLogin が許可されていると、X11 転送は自動的に禁止されます。

X11UseLocalhost (X11 で localhost のみを許可)
sshd(8) が転送された X11 サーバをループバックアドレス (localhost) に bind するかどうかを指定します。デフォルトでは、 sshd は、転送された X11 をループバックアドレスに bind し、環境変数 DISPLAY のホスト名の部分を“localhost”に設定します。こうすると、(訳注: SSHサーバ以外の) リモートホストから転送された Xサーバに接続することはできなくなります。しかし、古い X11 クライアントだと、この設定では動作しないことがあります。そのようなときは、 X11UseLocalhost を“no”に設定して、転送された X サーバがワイルドカードアドレスに bind されるようにできます。引数は、“yes”または“no”でなければなりません。デフォルトは、“yes”です。
XAuthLocation (xauth の位置)
xauth(1) プログラムのフルパス名を指定します。デフォルトでは、 /usr/local/bin/xauth です。

時間の形式

時間を指定する sshd(8) のコマンドライン引数と設定ファイルのオプションは、次の形式のシーケンスを使用して表現されます: time[ qualifier]ここで time は、正の整数値で、 qualifier は、次の 1 つです:

< なし>
s | S
m | M
h | H
時間
d | D
w | W

シーケンスの各メンバは、合計の時間の値を計算するためにともに追加されます。

時間の形式の例:

600
600 秒 (10 分)
10m
10 分
1h30m
1 時間 30 分 (90 分)

関連ファイル

/etc/ssh/sshd_config
sshd(8) のための設定データを含んでします。このファイルは、 root だけによって書き込み可能であるべきですが、 (必須ではありませんが) 全ユーザに読み込み可能であることは推奨されます。

関連項目

sshd(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 は、特権分離のためのサポートを寄贈しました。
July 19, 2013 FreeBSD