/etc/ssh/ssh config
ssh_config — OpenSSH client configuration file
DESCRIPTION
ssh は、以下のソースから以下の順序で設定データを取得する。
- 1. コマンドラインオプション
- 2. ユーザーの設定ファイル (~/.ssh/config)
- 3. システム全体の設定ファイル (/etc/ssh/ssh_config)
各パラメータは、最初に取得した値が使用される。 設定ファイルにはHost指定で区切られたセクションがあり、そのセクションは指定で与えられたパターンの一つにマッチするホストに対してのみ適用される。 一致するホスト名は、通常、コマンドラインで与えられたものである (例外については CanonicalizeHostname オプションを参照すること)。
各パラメータは最初に取得した値が使用されるため、ファイルの先頭付近にはよりホスト固有の宣言を、末尾には一般的なデフォルトを記述する必要がある。 Debian の openssh-client パッケージでは、 ssh のデフォルトではないいくつかのオプションを /etc/ssh/ssh_config で標準として設定していることに注意。
- Include /etc/ssh/ssh_config.d/*.conf
- SendEnv LANG LC_*
- HashKnownHosts yes
- GSSAPIAuthentication yes
/etc/ssh/ssh_config.d/*.conf ファイルは、システム全体の構成ファイルの先頭に含まれるため、 そこで設定されたオプションは /etc/ssh/ssh_config のものより優先される。
このファイルには、キーワードと引数のペアが 1 行に 1 つずつ含まれる。 ‘#’で始まる行および空白行はコメントとして解釈される。 引数は、スペースを含む引数を表すために、オプションで二重引用符 (") で囲むことができる。 後者の形式は、 ssh、scp、および sftp -o オプションを使用して構成オプションを指定する際に、空白を引用する必要を 避けるのに便利である。
使用可能なキーワードとその意味は次のとおりである (キーワードは大文字小文字を区別せず、引数は大文字小文字を区別することに注意)。
- Host
- 以下の宣言(次のHostまたはMatchキーワードまで)が、キーワードの後に与えられたパターンの1つにマッチするホストのみであるように制限する。 複数のパターンを指定する場合は、空白で区切る必要がある。 パターンとして単一の「*」を指定すると、すべてのホストに対するグローバルなデフォルトを提供することができる。 ホストは通常、コマンドラインで指定されたホスト名である (例外については CanonicalizeHostname キーワードを参照)。
- パターンエントリの前にエクスクラメーションマーク ('!') を付けると、そのエントリを否定することができる。 否定されたエントリにマッチした場合、その行の他のパターンにマッチするかどうか に関係なく、Host エントリが無視される。 したがって、否定されたマッチは、ワイルドカードマッチの例外を提供するのに便利である。
- パターンの詳細については、「PATTERNS」を参照。
- Match
- 次の宣言 (次の Host または Match キーワードまで) が、Match キーワードに続く条件を満たす場合にのみ使用されるよう制限する。 一致条件は、1つ以上の条件、または常に一致する単一のトークンであるallを使用して指定する。 使用可能な基準キーワードは、canonical、final、exec、host、originalhost、user、およびlocaluserである。 allは単独で、またはcanonicalやfinalの直後に記述する必要がある。 その他の条件は、任意に組み合わせることができる。 all、canonical、final以外のすべての基準は、引数を必要とします。 基準は、感嘆符 ('!') を先頭に付けることで否定することができる。
- canonical キーワードは、ホスト名の正規化 (CanonicalizeHostname オプションを参照) の後に構成ファイルを再解析する場合にのみマッチする。 これは、正規のホスト名のみで動作する条件を指定するのに便利な場合がある。
- final キーワードは、 (CanonicalizeHostname が有効になっているかどうかに関係なく) 構成の再解析を要求し、この最終パスの間のみマッチする。 CanonicalizeHostname が有効になっている場合、canonical と final は同じパスで一致する。
- exec キーワードは、指定されたコマンドをユーザのシェルの下で実行する。 コマンドがゼロの終了ステータスを返した場合、その条件は真とみなされる。 空白文字を含むコマンドは、引用符で囲む必要がある。 execへの引数は、TOKENSセクションで説明されているトークンを受け付ける。
- 他のキーワードの条件は、単一エントリまたはカンマ区切りのリストでなければならず、PATTERNSセクションで説明されているワイルドカードおよび否定演算子を使用することができる。 host キーワードの条件は、Hostname オプションまたは CanonicalizeHostname オプションによる置換の後に、ターゲットホスト名に対してマッチングされるす。 originalhost キーワードは、コマンドラインで指定されたホスト名と一致する。 user キーワードは、リモートホスト上のターゲットユーザ名と一致する。 localuser キーワードは、ssh を実行しているローカルユーザの名前と一致する (このキーワードはシステム全体の ssh_config ファイルで役に立つことがある)。
- AddKeysToAgent
- 実行中の ssh-agent に鍵を自動的に追加するかどうかを指定する。 このオプションが yes に設定されていて、 鍵がファイルから読み込まれた場合、その鍵とパスフレーズは、あたかも ssh-add によって、既定の有効期限でエージェントに追加される。 このオプションを ask に設定すると、 ssh は鍵を追加する前に SSH_ASKPASS プログラムを使った確認を要求する (詳しくは ssh-add を参照)。 このオプションを confirm に設定すると、 ssh-add に -c オプションが指定された場合と同様に、鍵を使用するたびに確認する必要がある。 このオプションを no に設定すると、エージェントに鍵が追加されません。また、このオプションは、 sshd_config の TIME FORMATS セクションで説明されている形式を使用して時間間隔として指定し、 ssh-agent で鍵の有効期間を指定することもでき、その後、鍵は自動的に削除される。 引数には、no (既定)、yes、confirm (オプションでその後に時間間隔を指定)、ask または時間間隔を指定する必要がある。 AddressFamily 接続時に使用するアドレス・ファミリーを指定する。 有効な引数は、any(デフォルト)、inet(IPv4のみ使用)、またはinet6(IPv6のみ使用)である。
- BatchMode
- yesに設定すると、パスワードのプロンプトやホストキーの確認要求などのユーザとの対話が無効になる。 さらに、ServerAliveInterval オプションはデフォルトで 300 秒に設定される (Debian 固有のものである)。 このオプションは、ssh と対話するユーザが存在しないスクリプトやその他のバッチジョブで、壊れたネットワークを迅速に検出することが望ましい場合に便利である。引数は yes または no (デフォルト) でなければならない。
- BindAddress
- 接続のソースアドレスとして、ローカルマシン上の指定されたアドレスを使用する。 複数のアドレスを持つシステムでのみ有効である。
- BindInterface
ローカルマシン上の指定されたインターフェースのアドレスを接続のソースアドレスとして使用する。
- CanonicalDomains
- CanonicalizeHostname が有効な場合、このオプションは、指定された宛先ホストを検索するドメイン・サフィックスの一覧を指定する。
- CanonicalizeFallbackLocal
- ホスト名の正規化に失敗したときに、エラーで失敗するかどうかを指定する。 既定の yes は、システムリゾルバの検索ルールを使用して、未修飾のホスト名の検索を試みる。 値を no に設定すると、CanonicalizeHostname が有効で、ターゲットホスト名が CanonicalDomains で指定されたドメインのいずれかで見つからない場合、 ssh が即座に失敗するようになる。
- CanonicalizeHostname
- 明示的なホスト名の正規化を行うかどうかを制御する。 既定の no は、名前の書き換えを一切行わず、システムのリゾルバがすべてのホスト名検索を処理するようにする。 yes に設定すると、ProxyCommand または ProxyJump を使用しない接続の場合、 ssh は、CanonicalDomains suffixes および CanonicalizePermittedCNAMEs 規則を使用して、コマンドラインで指定されたホスト名を正規化しようと試みる。 CanonicalizeHostname が always に設定されている場合、正規化はプロキシ接続にも適用される。
- このオプションを有効にすると、設定ファイルは新しいターゲット名を使用して再度処理され、 Host および Match スタンサに一致する新しい設定がすべてピックアップされる。
- CanonicalizeMaxDots
- 正規化を無効にする前に、ホスト名で使用するドット文字の最大数を指定する。デフォルトの1では、1つのドットが許可される (例: hostname.subdomain)。
- CanonicalizePermittedCNAMEs
- ホスト名を正規化するときに CNAME に従うかどうかを決定する規則を指定する。このルールは source_domain_list:target_domain_list の1つ以上の引数で構成され、 source_domain_list は正規化で CNAME に従う可能性のあるドメインのパターンリスト、 target_domain_list はそのドメインが解決する可能性のあるドメインのパターンリストである。
- たとえば、「*.a.example.com:*.b.example.com,*.c.example.com」は、「*.a.example.com」にマッチするホスト名を「*.b.example.com」や「*.c.example.com」ドメインの名前に標準化できるようにするものである。
- CASignatureAlgorithms
- 認証局(CA)による証明書への署名に許可するアルゴリズムを指定する。 デフォルトは
ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
- ssh は、指定されたアルゴリズム以外を使用して署名されたホスト証明書を受け入れないようにする。CertificateFile ユーザの証明書が読み込まれるファイルを指定する。 この証明書を使用するには、IdentityFile ディレクティブまたは ssh の -i フラグ、 ssh-agent 経由、あるいは PKCS11Provider または SecurityKeyProvider を使用して、対応する秘密鍵を別に提供する必要がある。
- CertificateFile への引数は、チルダ構文を使用して、ユーザーのホームディレクトリ、TOKENS セクションで説明されているトークン、および「ENVIRONMENT VARIABLES」セクションで説明されている環境変数を参照することができる。
- 設定ファイルに複数の証明書ファイルを指定することが可能で、これらの証明書は順番に試行される。 複数の CertificateFile ディレクティブがあると、 認証に使われる証明書のリストに追加される。
- ChallengeResponseAuthentication
- チャレンジ・レスポンス認証を使用するかどうかを指定する。 このキーワードの引数は、yes (既定) または no である必要がある。
- CheckHostIP
- yes (デフォルト) に設定すると、ssh はさらに known_hosts ファイル中のホストの IP アドレスをチェックする。 これにより、DNS スプーフィングによってホスト鍵が変更された場合、 StrictHostKeyChecking の設定に関係なく、その過程で ~/.ssh/known_hosts に宛先ホストのアドレスが追加されることを検出することができる。 このオプションをnoに設定すると、チェックは実行される。
- Ciphers
- 許可される暗号とその優先順位を指定する。 複数の暗号はカンマ区切りで指定する必要がある。 指定したリストが「+」文字で始まる場合、指定した暗号はデフォルトのセットに追加され、置き換えられない。 指定したリストが「-」文字で始まる場合、指定した暗号 (ワイルドカードを含む) はデフォルトセットから削除され、置き換わらない。 指定されたリストが「^」文字で始まる場合、指定された暗号はデフォルトセットの先頭に配置される。
- サポートされている暗号は次のとおりである。
3des-cbc aes128-cbc aes192-cbc aes256-cbc aes128-ctr aes192-ctr aes256-ctr aes128-gcm@openssh.com aes256-gcm@openssh.com chacha20-poly1305@openssh.com
- デフォルトは、
chacha20-poly1305@openssh.com, aes128-ctr,aes192-ctr,aes256-ctr, aes128-gcm@openssh.com,aes256-gcm@openssh.com
- 利用可能な暗号の一覧は、ssh -Q cipherを使用して取得することもできる。
- ClearAllForwardings
- 構成ファイルまたはコマンドラインで指定されたすべてのローカル、リモート、および動的なポ ート転送をクリアするように指定する。 このオプションは、構成ファイルで設定されたポート転送をクリアするために ssh コマンドラ インから使用する場合に主に有用であり、scp および sftp によって自動的に設定される。 引数には、yes または no (既定) を指定する必要がある。
- Compression
- 圧縮を使用するかどうかを指定する。 引数はyesまたはno(デフォルト)である必要がある。
- ConnectionAttempts
- 終了するまでに試行する回数(1秒に1回)を指定する。 引数は、整数でなければならない。 これは、接続に失敗することがある場合にスクリプトで有用である。 デフォルトは1である。
- ConnectTimeout
- SSH サーバへの接続時に、既定のシステム TCP タイムアウトを使用する代わりに使用するタイムアウト (秒単位) を指定する。 このタイムアウトは、接続の確立と、最初の SSH プロトコルのハンドシェイクおよび鍵交換の実行の両方に適用される。
- ControlMaster
- 1 つのネットワーク接続上で複数のセッションを共有できるようにする。 yes に設定すると、ssh は、ControlPath 引数を使用して指定された制御ソケット上の接続を待ち受ける。追加のセッションは、ControlMaster を no (既定) に設定し、同じ ControlPath を使用してこのソケットに接続できる。 これらのセッションは、新しい接続を開始するのではなく、マスターインスタンスのネットワーク接続を再利用しようとするが、コントロールソケットが存在しないか、リッスンされていない場合は、通常の接続にフォールバックされる。
- これを ask に設定すると、 ssh は制御接続を待つが、 ssh-askpass を使って確認を要求する。 ControlPath を開くことができない場合、ssh はマスターインスタンスに接続することなく続行する。
- X11 と ssh-agent の転送は、これらの多重化された接続上でサポートされているが、 転送されるディスプレイとエージェントはマスター接続に属するものであり、 すなわち、複数のディスプレイやエージェントを転送することは不可能である。
- 2つのオプションにより、マスター接続を使用しながらも、マスター接続が存在しない場合は新しい接続を作成する、オポチュニスティックなマルチプレキシングが可能である。 これらのオプションは、auto と autoask である。 後者はaskオプションと同様に確認が必要である。
- ControlPath
- 上記のControlMasterセクションで説明されているように、接続共有に使用されるコントロールソケットへのパスを指定するか、接続共有を無効にするために文字列noneを指定する。 ControlPathへの引数は、ユーザーのホームディレクトリ、TOKENSセクションで説明したトークン、ENVIRONMENT VARIABLESセクションで説明した環境変数を参照するためにチルダ構文を使用することができる。 臨機応変な接続共有に使用される ControlPath には、少なくとも %h、%p、および %r (あるいは %C) を含め、他のユーザが書き込みできないディレクトリに置くことが推奨される。 これにより、共有接続が一意に識別されるようになる。
- ControlPersist
- ControlMaster と一緒に使用する場合、最初のクライアント接続が閉じられた後、マスタ ー接続をバックグラウンドで開いたままにする(将来のクライアント接続を待つ)ことを指 定する。 no(デフォルト)に設定すると、マスタ接続はバックグラウンドにならず、最初のクライアント接続が閉じられるとすぐに閉じられる。 yes または 0 に設定すると、マスタ接続は無期限にバックグラウンドになる (ssh -O exitなどのメカニズムによって強制終了または終了されるまで)。 秒単位の時間、または sshd_config で文書化されている任意の形式の時間が設定されている場合、バックグラウンドで動作するマスタ接続は、指定時間アイドル状態 (クライアント接続なし) になった後、自動的に終了される。
- DynamicForward
- ローカルマシンの TCP ポートを安全なチャネルに転送するように指定し、アプリケーションプロトコルを使用してリモートマシンからどこに接続するかを決定する。
- 引数は [bind_address:]port でなければならない。 IPv6 アドレスは、アドレスを角括弧で囲んで指定することができる。 デフォルトでは、ローカルポートは GatewayPorts の設定にしたがってバインドされる。 しかし、明示的に bind_address を指定することで、特定のアドレスに接続を束縛することができる。 bind_address に localhost を指定すると、リスニングポートをローカルにのみ割り当てることを示し、空のアドレスまたは '*' を指定すると、そのポートがすべてのインタフェースから利用できることを示す。
- 現在、SOCKS4 および SOCKS5 プロトコルに対応しており、 ssh は SOCKS サーバとして動作します。複数の転送を指定することができ、コマンドラインで追加の転送を指定することができる。 特権ポートを転送できるのはスーパーユーザのみである。
- EnableSSHKeysign
- グローバルクライアント構成ファイル /etc/ssh/ssh_config でこのオプションを yes に設定すると、 HostbasedAuthentication 中にヘルパープログラム ssh-keysign を使用することが可能になる。 引数には yes または no (既定) を指定する必要がある。 このオプションは、ホスト固有でないセクションに配置する必要がある。 詳細については、ssh-keysign を参照。
- EscapeChar
- エスケープ文字を設定する(デフォルト:'~')。 エスケープ文字は、コマンドラインで設定することもできる。 引数は、1 文字、'^' に続く文字、またはエスケープ文字を完全に無効にする none (バイナリデータに対して接続を透明にする) でなければならない。
- ExitOnForwardFailure
- ssh が、要求されたすべての動的、トンネル、ローカル、およびリモートポート転送を セットアップできない場合に、接続を終了すべきかどうかを指定する (たとえば、いずれかの端が、指定された ポートにバインドして聞くことができない場合など)。 ExitOnForwardFailure は、ポート転送を介して行われる接続には適用されず、例えば、最終的な転送先への TCP 接続が失敗した場合に ssh が終了することはないことに注意。 引数には、yes または no (既定) を指定する必要があある。
- FingerprintHash
- 鍵のfingerprintを表示する際に使用するハッシュアルゴリズムを指定する。 有効なオプションは、md5 および sha256 (デフォルト) である。
- ForwardAgent
- 認証エージェントへの接続を (もしあれば) リモートマシンに転送するかどうかを指定する。 引数には、yes、no (既定)、エージェントソケットへの明示的なパス、またはパスを検索するための環境変数名 (先頭が '$') を指定できる。
- エージェント転送を有効にするには、注意が必要である。 リモートホストのファイルパーミッションをバイパスする能力を持つユーザー (エージェントの Unix ドメインソケットの場合) は、転送された接続を介してローカルエージェントにアクセスすることができる。 攻撃者は、エージェントから鍵の材料を取得することはできないが、エージェントにロードされたIDを使用して認証できるように、鍵に対して操作を実行することができる。
- ForwardX11
- X11 接続を自動的に安全なチャネルにリダイレクトするかどうか、および DISPLAY を設定するかどうかを指定する。 引数は yes または no (既定) でなければならない。
- X11 転送は、注意して有効にする必要がある。 リモートホストのファイルパーミッションをバイパスする能力を持つユーザー (ユーザーの X11 認証データベースの場合) は、転送された接続を通じてローカルの X11 ディスプレイにアクセスすることができる。 ForwardX11Trustedオプションも有効になっている場合、攻撃者はキーストローク監視などのアクティビティを実行できる可能性がある。
- ForwardX11Timeout
- sshd_config の TIME FORMATS セクションに記述されている形式を使用して、信頼されない X11 転送のためのタイムアウトを指定する。 この時間以降に ssh が受信した X11 接続は拒否される。ForwardX11Timeout を 0 に設定すると、タイムアウトが無効になり、接続の有効期間中、X11 転送が許可される。 デフォルトでは、20 分経過すると信頼されていない X11 転送が無効になる。
- ForwardX11Trusted
- このオプションを yes に設定すると (Debian 固有のデフォルト)、リモートの X11 クライアントはオリジナルの X11 ディスプレイに完全にアクセスできるようになる。
- このオプションを no (アップストリームのデフォルト) に設定すると、リモートの X11 クライアントは信頼できないものとみなされ、信頼できる X11 クライアントのデータを盗んだり改ざんしたりすることができなくなる。さらに、セッションに使用される xauth トークンは、20 分後に期限切れになるように設定される。 リモートクライアントはこの時間を過ぎるとアクセスを拒否される。
- 信頼できないクライアントに課せられる制限の詳細については、 X11 SECURITY 拡張仕様 を参照。
- GatewayPorts
- リモートホストがローカル転送されたポートへの接続を許可されるかどうかを指定する。 既定では、ssh は、ローカルポート転送をループバックアドレスにバインドする。 これにより、他のリモートホストが転送されたポートに接続できなくなる。 GatewayPorts を使用すると、ssh がローカルポート転送をワイルドカードアドレスにバインドするよう指定することができ、これにより、リモートホストが転送されたポートに接続できるようになる。 この引数には yes または no (既定) を指定する必要がある。
- GlobalKnownHostsFile
- グローバルホスト鍵データベースに使用する 1 つまたは複数のファイルを空白で区切って指定する。 既定では、/etc/ssh/ssh_known_hosts、/etc/ssh/ssh_known_hosts2 が使用される。
- GSSAPIAuthentication
- GSSAPI に基づくユーザ認証を許可するかどうかを指定する。 デフォルトは no である。
- GSSAPIClientIdentity
- 設定されている場合、ssh がサーバに接続するときに使用する GSSAPI クライアント ID を指定しする。既定値は未設定で、既定の ID が使用されることを意味する。
- GSSAPIDelegateCredentials
- 認証情報をサーバーに転送(委譲)する。 デフォルトはnoである。
- GSSAPIKeyExchange
- GSSAPI に基づく鍵交換を使用するかどうかを指定する。GSSAPI 鍵交換を使用する場合、サーバーはホスト鍵を持つ必要はない。 デフォルトは noである。
- GSSAPIRenewalForcesRekey
- yesに設定すると、クライアントの GSSAPI 資格情報の更新によって、ssh 接続の鍵の再作成が強制される。互換性のあるサーバでは、更新された認証情報をサーバ上のセッションに委譲する。
- 新しい資格情報が、発信元クライアントの古い資格情報と一致し、受信側サーバーのキャッシュに古いセットが残っている場合にのみ、資格情報が伝達されるように確認が行われる。
- デフォルトはnoである。
- これが機能するためには、GSSAPIKeyExchange がサーバで有効になっており、クライアントでも使用されている必要がある。
- GSSAPIServerIdentity
- 設定されている場合、サーバに接続するときに ssh が期待する GSSAPI サーバ ID を指定する。既定値は未設定で、予想される GSSAPI サーバー ID はターゲットのホスト名から判断される。
- GSSAPITrustDns
- 接続先のホスト名を安全に正規化するためにDNSを信頼することを示すために yes に設定する。noの場合、コマンドラインで入力されたホスト名がそのままGSSAPIライブラリに渡される。 デフォルトは no である。
- GSSAPIKexAlgorithms
- GSSAPI鍵交換で提供される鍵交換アルゴリズムの一覧である。指定可能な値は以下の通り。
gss-gex-sha1-, gss-group1-sha1-, gss-group14-sha1-, gss-group14-sha256-, gss-group16-sha512-, gss-nistp256-sha256-, gss-curve25519-sha256-
- デフォルトは
“gss-group14-sha256-,gss-group16-sha512-,gss-nistp256-sha256-,gss-curve25519-sha256-,gss-gex-sha1-,gss-group14-sha1-”.
このオプションは、GSSAPIを使用した接続の場合のみ適用される。
- HashKnownHosts
- 'ssh が ~/.ssh/known_hosts に追加する際に、ホスト名とアドレスをハッシュ化することを 指示する。 これらのハッシュ化された名前は、 ssh および sshd で通常使用することができるが、ファイルの内容が公開された場合、 識別情報を視覚的に明らかにすることはない。 既定値は no である。 既知のホストファイル中の既存の名前とアドレスは自動的に変換されないが、 ssh-keygen を使用して手動でハッシュ化することができることに注意。 このオプションを使用すると、~/.ssh/known_hosts からハッシュ化されていないホスト名を読み取ることに依存するタブコンプリートなどの機能が壊れる可能性がある。
- HostbasedAuthentication
- 公開鍵認証で rhosts ベースの認証を試行するかどうかを指定する。 引数には yes または no (デフォルト) を指定する。
- HostbasedKeyTypes
- ホストベース認証に使用する鍵の種類を、カンマで区切ったパターンの一覧で指定する。 指定したリストが'+'文字で始まる場合、指定した鍵の種類は、既定のセットを置き換えるのではなく、それに追加される。 指定されたリストが'-'文字で始まる場合、指定されたキータイプ(ワイルドカードを含む)は、デフォルトのセットから削除され、置き換えられることはない。 指定されたリストが'^'文字で始まる場合、指定されたキータイプはデフォルトセットの先頭に配置される。 このオプションの既定値は次のとおり。
ecdsa-sha2-nistp256-cert-v01@openssh.com, ecdsa-sha2-nistp384-cert-v01@openssh.com, ecdsa-sha2-nistp521-cert-v01@openssh.com, sk-ecdsa-sha2-nistp256-cert-v01@openssh.com, ssh-ed25519-cert-v01@openssh.com, sk-ssh-ed25519-cert-v01@openssh.com, rsa-sha2-512-cert-v01@openssh.com, rsa-sha2-256-cert-v01@openssh.com, ssh-rsa-cert-v01@openssh.com, ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, sk-ecdsa-sha2-nistp256@openssh.com, ssh-ed25519,sk-ssh-ed25519@openssh.com, rsa-sha2-512,rsa-sha2-256,ssh-rsa
- sshの-Qオプションは、対応する鍵の種類を一覧表示することができる。
- HostKeyAlgorithms
- クライアントが使用したいホスト鍵アルゴリズムを優先順位で指定する。 指定されたリストが'+文字で始まる場合、指定された鍵の種類はデフォルトのセットに追加され、置き換えられなくなる。 指定されたリストが'-'文字で始まる場合、指定されたキータイプ(ワイルドカードを含む)は、デフォルトのセットから削除され、置き換わることはない。 指定されたリストが'^'文字で始まる場合、指定されたキータイプはデフォルトセットの先頭に配置される。 このオプションの既定値は次のとおり。
ecdsa-sha2-nistp256-cert-v01@openssh.com, ecdsa-sha2-nistp384-cert-v01@openssh.com, ecdsa-sha2-nistp521-cert-v01@openssh.com, sk-ecdsa-sha2-nistp256-cert-v01@openssh.com, ssh-ed25519-cert-v01@openssh.com, sk-ssh-ed25519-cert-v01@openssh.com, rsa-sha2-512-cert-v01@openssh.com, rsa-sha2-256-cert-v01@openssh.com, ssh-rsa-cert-v01@openssh.com, ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, sk-ecdsa-sha2-nistp256@openssh.com, ssh-ed25519,sk-ssh-ed25519@openssh.com, rsa-sha2-512,rsa-sha2-256,ssh-rsa
- 宛先ホストのホスト鍵が既知の場合、このデフォルトはそのアルゴリズムを優先するように 修正される。
- 利用可能な鍵の種類の一覧は、ssh -Q HostKeyAlgorithms を使用して取得することもできる。
- HostKeyAlias
- ホスト鍵データベースファイルにおいてホスト鍵を検索または保存するとき、およびホスト証明書を検証するときに、実際のホスト名の代わりに使用されるエイリアスを指定する。 このオプションは、SSH 接続をトンネリングする場合や 1 台のホストで複数のサーバを実行する場合に便利である。
- Hostname
- ログインするための実際のホスト名を指定する。 これは、ホストのニックネームや略称を指定するために使用することができる。 Hostnameへの引数には、TOKENSセクションで説明されているトークンを使用できる。 数値のIPアドレスも許可される(コマンドラインとHostnameの指定の両方)。 デフォルトは、コマンドラインで指定された名前である。
- IdentitiesOnly
- ssh-agent または PKCS11Provider もしくは SecurityKeyProvider がより多くの ID を提供する場合でも、 ssh が構成された認証 ID および証明書ファイル (既定のファイル、または ssh_config ファイルで明示的に構成されたファイル、あるいは ssh コマンドラインで渡されたファイル) のみを使用するよう指定する。 このキーワードの引数には yes または no (既定) を指定する必要がある。 このオプションは、ssh-agent が多数の異なる ID を提供する状況を想定している。
- IdentityAgent
- 認証エージェントとの通信に使用する UNIX ドメインのソケットを指定する。
- このオプションは、環境変数 SSH_AUTH_SOCK を上書きし、特定のエージェントを選択するために使用できる。 ソケット名をnoneに設定すると、認証エージェントを使用しないようになる。 文字列 SSH_AUTH_SOCK を指定すると、環境変数 SSH_AUTH_SOCK からソケットの場所を読み取る。 それ以外の場合、指定された値が'$'文字で始まる場合、ソケットの場所を含む環境変数として扱われる。
- IdentityAgentへの引数は、チルダ構文を使用して、ユーザーのホームディレクトリ、 TOKENSセクションに記載されているトークン、ENVIRONMENT VARIABLESセクションに記載されている 環境変数を参照することができる。
- IdentityFile
- ユーザの DSA、ECDSA、authenticator-hosted ECDSA、Ed25519、authenticator-hosted Ed25519 または RSA 認証 ID の読み取り元となるファイルを指定する。 デフォルトは ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ecdsa_sk, ~/.ssh/id_ed25519, ~/.ssh/id_ed25519_sk, ~/.ssh/id_rsa のいずれかである。さらに、IdentitiesOnly が設定されていない限り、認証エージェントによって表されるすべての ID が認証に使用される。 CertificateFileで証明書が明示的に指定されていない場合、sshは、指定された IdentityFileのパスに -cert.pub を追加したファイル名から証明書情報をロードしようとする。
- IdentityFileへの引数には、ユーザーのホームディレクトリまたはTOKENSセクションに記載されているトークンを参照するチルダ構文を使用できる。
- 設定ファイルに複数のIdentityFileを指定することが可能で、これらすべての IDが順番に試行される。 複数の IdentityFile ディレクティブを指定すると、試行される ID のリストが追加される (この動作は、他の設定ディレクティブとは異なる)。
- IdentityFile は IdentitiesOnly と組み合わせて、認証時に提供するエージェントの アイデンティティを選択するために使用することができる。 IdentityFile は CertificateFile と組み合わせて使用することもできる。 これは、その ID での認証に必要な証明書を提供するためである。
- IgnoreUnknown
- 構成解析中に未知のオプションに遭遇した場合に無視するためのパターンリストを指定する。 これは、 ssh_config に ssh で認識できないオプションが含まれている場合に、 エラーを抑制するために使用されるかもしれない。 IgnoreUnknown は、構成ファイルの初期に記載することを勧める。これは、それ以前に記載された 未知のオプションには適用されないからである。
- Include
- 指定された設定ファイルを含める。 複数のパス名を指定することができ、各パス名には glob(7) ワイルドカードと、ユーザー設定の場合はユーザーホームディレクトリへのシェルのような '~' 参照を含めることができる。 ワイルドカードは字句の順に展開され処理される。 絶対パスがないファイルは、ユーザー構成ファイルに含まれている場合は ~/.ssh に、システム構成ファイルから含まれている場合は /etc/ssh にあると見なされる。 Include ディレクティブは、Match または Host ブロックの中に記述して、条件付きインクルージョンを実行することができる。
- IPQoS
- 接続のIPv4サービスタイプまたはDSCPクラスを指定する。 使用できる値は、af11、af12、af13、af21、af22、af23、af31、af32、af33、af41、af42、af43、cs0、cs1、cs2、cs3、cs4、cs5、cs6、cs7、ef、le、lowdelay、sroughput、reliance、数値、またはオペレーティングシステムのデフォルトを使用する none のいずれかである。 このオプションは、空白文字で区切られた1つまたは2つの引数を取ることができる。1つの引数を指定した場合,その引数は無条件にパケットクラスとして使用される。2つの値が指定された場合、最初の値は対話型セッションで、2番目の値は非対話型セッションで自動的に選択される。 デフォルトは、インタラクティブセッションの場合はlowdelay、非インタラクティブセッションの場合はthroughputである。
- KbdInteractiveAuthentication
- keyboard-interactive 認証を使用するかどうかを指定する。 このキーワードの引数には、yes (既定) または no を指定する必要がある。
- KbdInteractiveDevices
- キーボード対話型認証で使用するメソッドの一覧を指定する。 複数のメソッド名をカンマ区切りで指定する必要がある。 デフォルトは、サーバーが指定したリストを使用する。 使用可能なメソッドは、サーバーがサポートする内容によって異なる。 OpenSSH サーバでは、bsdauth と pam のうち、0 個以上のメソッドを使用することができる。
- KexAlgorithms
- 利用可能な KEX (Key Exchange) アルゴリズムを指定する。 複数のアルゴリズムをカンマ区切りで指定する必要がある。 指定されたリストが'+'文字で始まる場合、指定されたメソッドはデフォルトのセットと置き換わるのではなく、追加される。 指定したリストが '-' 文字で始まる場合、指定したメソッド (ワイルドカードを含む) はデフォルトセットから削除され、置き換えは行われない。 指定されたリストが '^' 文字で始まる場合、指定されたメソッドはデフォルトセットの先頭に置かれる。 デフォルトは、
curve25519-sha256,curve25519-sha256@libssh.org, ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group16-sha512, diffie-hellman-group18-sha512, diffie-hellman-group14-sha256
- 利用可能な鍵交換アルゴリズムの一覧は、ssh -Q kexを使用して取得することもできる。
- LocalCommand
- サーバへの接続に成功した後にローカルマシンで実行するコマンドを指定する。コマンド文字列は行末まで続き、ユーザーのシェルで実行される。 LocalCommand への引数は、TOKENS セクションで説明されているトークンを受け付ける。
- このコマンドは同期的に実行され、このコマンドを生成した ssh のセッションにアクセスすることはできない。 対話的なコマンドに使用すべきではない。
- このディレクティブは、PermitLocalCommand が有効になっていない限り、無視される。
- LocalForward
- ローカルマシンの TCP ポートを、リモートマシンの指定されたホストとポートに安全なチャネルで転送するよう指定する。 第一引数はリスナーで、[bind_address:]port または Unix ドメインソケットパスのいずれかを指定する。 2 番目の引数は宛先で、リモートホストが対応している場合は host:hostport または Unix ドメインソケットパスである。
- IPv6 アドレスは、アドレスを角括弧で囲んで指定することができる。 複数の転送先を指定することができ、コマンドラインから追加の転送先を指定することもできる。 特権ポートの転送は、スーパーユーザのみが行うことができる。 デフォルトでは、ローカルポートはGatewayPortsの設定にしたがってバインドされる。 しかし、明示的な bind_address を使用して、接続を特定のアドレスにバインドすることができる。 bind_address に localhost を指定すると、そのポートをローカルにのみ割り当てることを指示し、空のアドレスまたは '*' を指定すると、そのポートをすべてのインタフェースから利用できるようにすることを指示する。 Unixドメインソケットパスは、TOKENSセクションで説明したトークンや、ENVIRONMENT VARIABLESセクションで説明した環境変数を使用することができる。
- LogLevel
- ssh からのメッセージをログ記録する際に使用される冗長レベルを指定する。 指定できる値は以下のとおり。QUIET、FATAL、ERROR、INFO、VERBOSE、DEBUG、DEBUG1、DEBUG2、および DEBUG3 を指定する。 デフォルトはINFOである。DEBUG と DEBUG1 は同等である。 DEBUG2 と DEBUG3 は、それぞれより高度な冗長出力を指定する。
- MACs
- MAC(メッセージ認証コード)アルゴリズムを優先順位で指定する。 MACアルゴリズムは、データの完全性保護に使用される。 複数のアルゴリズムをカンマ区切りで指定する必要がある。 指定したリストが'+'文字で始まる場合、指定したアルゴリズムはデフォルトのセットと置き換わるのではなく、追加される。 指定したリストが'-'文字で始まる場合、指定したアルゴリズム (ワイルドカードを含む) はデフォルトセットから削除され、置き換わることはない。 指定されたリストが '^' 文字で始まる場合、指定されたアルゴリズムはデフォルトセットの先頭に置かれる。
- -etmを含むアルゴリズムは、暗号化した後にMACを計算する(encrypt-then-mac)。 これらはより安全であると考えられており、その使用が推奨される。
- デフォルトは
umac-64-etm@openssh.com,umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com, umac-64@openssh.com,umac-128@openssh.com, hmac-sha2-256,hmac-sha2-512,hmac-sha1
- 利用可能な MAC アルゴリズムのリストは、ssh -Q macを使用して取得することもできる。
- NoHostAuthenticationForLocalhost
- localhost (ループバックアドレス) のホスト認証を無効にする。 このキーワードの引数は yes または no (既定) でなければならない。
- NumberOfPasswordPrompts
- あきらめるまでのパスワードプロンプトの回数を指定する。 このキーワードの引数には整数を指定する必要がある。 デフォルトは 3 である。
- PasswordAuthentication
- パスワード認証を使用するかどうかを指定する。 このキーワードの引数には、yes (既定) または no を指定する必要がある。
- PermitLocalCommand
- LocalCommand オプションを使用するか、または ssh で !command エスケープシーケンスを使用して、ローカルコマンドを実行できるようにする。 この引数は、yes または no (既定) でなければならない。
- PKCS11Provider
- 使用する PKCS#11 プロバイダを指定するか、またはプロバイダを使用しないことを示す none (既定値) を指定する。 このキーワードの引数は、ユーザ認証用の鍵を提供する PKCS#11 トークンと通信するために ssh が使用すべき PKCS#11 共有ライブラリへのパスである。
- Port
- リモートホストに接続するときのポート番号を指定する。デフォルトは、22である。
- PreferredAuthentications
- クライアントが認証方法を試行する順序を指定する。 これにより、クライアントは、ある方法 (例: keyboard-interactive) を別の方法 (例: password) よりも優先することができる。 既定値は次のとおり。
gssapi-with-mic,hostbased,publickey, keyboard-interactive,password
- ProxyCommand
- サーバへの接続に使用するコマンドを指定する。 コマンド文字列は行末まで拡張され、シェルのプロセスが長引かないように、ユーザのシェルの 'exec' ディレクティブを使用して実行される。
- ProxyCommandへの引数は、TOKENSセクションで説明されているトークンを受け付ける。 コマンドは基本的に何でもよく、標準入力から読み込み、標準出力に書き込む必要がある。 最終的には、どこかのマシンで動作している sshd サーバに接続するか、 どこかで sshd -i を実行することになる。 ホスト鍵の管理は、接続するホストの Hostname (デフォルトはユーザが入力した名前) を使って行われる。 コマンドを none に設定すると、このオプションは完全に無効になる。CheckHostIP は、プロキシコマンドを使用した接続では利用できないことに 注意。
- このディレクティブは、nc とそのプロキシのサポートと一緒に使うと便利である。 例えば、以下のディレクティブは 192.0.2.0 の HTTP プロキシを経由して接続する。
ProxyCommand /usr/bin/nc -X connect -x 192.0.2.0:8080 %h %p
- ProxyJump
- 1 つ以上のジャンププロクシを [user@]host[:port] または ssh URI として指定する。 複数のプロキシをカンマ文字で区切ることができ、順次訪問する。 このオプションを設定すると、ssh は、まず指定された ProxyJump ホストに ssh 接続を行い、そこから最終的なターゲットへの TCP 転送を確立して、ターゲットホストに接続するようになる。
- このオプションは、ProxyCommand オプションと競合することに注意 - どちらが先に指定されても、後から指定したものが有効になることはない。
- また、宛先ホストの設定 (コマンドラインまたは設定ファイル) は、一般にジャンプするホストには適用されないことに注意。 ジャンプホストに特定の設定が必要な場合は、 ~/.ssh/config を使用する必要がある。
- ProxyUseFdpass
- ProxyCommand が、接続されたファイル記述子を、実行やデータの受け渡しを継続する代わりに ssh に戻すかどうかを指定する。 デフォルトは no である。
- PubkeyAcceptedKeyTypes
- 公開鍵認証に使用する鍵の種類を、カンマで区切ったパターンの一覧で指定する。 指定したリストが'+'文字で始まる場合は、その後に続く鍵の種類が、既定値を置き換えるのではなく、追加される。 指定したリストが'-'文字で始まる場合、指定した鍵の種類 (ワイルドカードを含む) は、デフォルトのセットから削除される (置き換えるわけではない)。 指定されたリストが'^'文字で始まる場合、指定されたキータイプはデフォルトセットの先頭に配置される。 このオプションの既定値は次のとおり。
ecdsa-sha2-nistp256-cert-v01@openssh.com, ecdsa-sha2-nistp384-cert-v01@openssh.com, ecdsa-sha2-nistp521-cert-v01@openssh.com, sk-ecdsa-sha2-nistp256-cert-v01@openssh.com, ssh-ed25519-cert-v01@openssh.com, sk-ssh-ed25519-cert-v01@openssh.com, rsa-sha2-512-cert-v01@openssh.com, rsa-sha2-256-cert-v01@openssh.com, ssh-rsa-cert-v01@openssh.com, ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521, sk-ecdsa-sha2-nistp256@openssh.com, ssh-ed25519,sk-ssh-ed25519@openssh.com, rsa-sha2-512,rsa-sha2-256,ssh-rsa
- 利用可能な鍵の種類の一覧は、ssh -Q PubkeyAcceptedKeyTypes を使用して取得することも可能である。
- PubkeyAuthentication
- 公開鍵認証を試行するかどうかを指定する。 このキーワードの引数は、yes (既定) または no である必要がある。
- RekeyLimit
- セッションキーが再交渉される前に送信できる最大データ量を指定し、オプションでセッションキーが再交渉される前に経過できる最大時間を続けることができる。 最初の引数はバイト数で指定し、キロバイト、メガバイト、ギガバイトをそれぞれ示す 'K'、'M'、'G'の接尾辞を付けることができる。 デフォルトは 1G から 4G で、暗号化方式に依存する。 オプションの 2 番目の値は秒単位で指定し、sshd_config の TIME FORMATS セクションに記載されている任意の単位を使用することができる。 RekeyLimit の既定値は default none で、これは、暗号の既定量のデータが送受信された後に再キーイングが実行され、時間ベースの再キーイングは実行されないことを意味する。
- RemoteCommand
- サーバーへの接続に成功した後に、リモートマシンで実行するコマンドを指定します。コマンド文字列は行末まで拡張され、ユーザーのシェルで実行される。 RemoteCommand への引数は、TOKENS セクションで説明されているトークンを受け付ける。
- RemoteForward
- リモートマシン上の TCP ポートを安全なチャネルで転送するよう指定する。 リモートポートは、ローカルマシンから指定されたホストとポートに転送されるか、またはリモートクライアントがローカルマシンから任意の宛先に接続できるようにする SOCKS 4/5 プロキシとして動作することができる。 第一引数はリスニング指定で、[bind_address:]port か、リモートホストが対応していれば Unix ドメインソケットパスを指定することができる。 特定の宛先に転送する場合、第2引数は host:hostport または Unix ドメインソケットパスでなければならず、そうでない場合は宛先引数を指定しないと SOCKS プロキシとしてリモート転送が確立される。
- IPv6アドレスは、アドレスを角括弧で囲んで指定することができる。 複数の転送先を指定することができ、コマンドラインから追加の転送先を指定することもできる。 特権ポートは、リモートマシンでrootとしてログインしたときのみ転送することができる。 Unixドメインソケットパスは、TOKENSセクションで説明されているトークンや、ENVIRONMENT VARIABLESセクションで説明されている環境変数を使用することができる。
- port 引数が 0 の場合、リスンポートはサーバ側で動的に確保され、実行時にクライアントに通知される。
- bind_address を指定しない場合、デフォルトはループバックアドレスにのみバインドする。 bind_address が '*' または空文字列の場合、すべてのインターフェイスで listen するように転送を要求する。 リモートの bind_address を指定することは、サーバの GatewayPorts オプションが有効な場合のみ成功します (sshd_config を参照)。
- RequestTTY
- セッションに擬似TTYを要求するかどうかを指定します。 引数は、no (TTY を要求しない)、yes (標準入力が TTY の場合は常に TTY を要求する)、force (TTY を常に要求する)、または auto (ログインセッションを開くときに TTY を要求する) のいずれかを指定できる。 このオプションは ssh の -t と -T フラグと同じものである。
- RevokedHostKeys
- 取り消されたホスト公開鍵を指定する。 このファイルに記載されている鍵は、ホスト認証が拒否される。 このファイルが存在しないか、読み取り不可能な場合、すべてのホストでホスト認証が拒否されることに注意すること。 鍵は、1 行に 1 つの公開鍵を記載したテキストファイルとして、または ssh-keygen で生成される OpenSSH 鍵取り消しリスト (KRL) として指定できます。 KRL についての詳細は、 ssh-keygen の「KEY REVOCATION LISTS (鍵の取り消しリスト)」のセクションを参照。
- SecurityKeyProvider
- FIDO認証ホスト鍵を読み込む際に使用するライブラリへのパスを指定し、内蔵のUSB HIDサポートを使用するデフォルトを上書きする。
- 指定された値が '$' 文字で始まる場合、ライブラリへのパスを含む環境変数として扱われる。
- SendEnv
- ローカルの environ(7) からどのような変数をサーバに送るべきかを指定する。 サーバーもこれをサポートし、サーバーがこれらの環境変数を受け入れるように設定されていなければならない。 TERM 環境変数は、プロトコルで要求されているため、疑似端末が要求された場合は常に送信されることに注意すること。 サーバの設定方法については、sshd_config の AcceptEnv を参照。 変数は名前で指定され、ワイルドカード文字を含むことができます。 複数の環境変数を空白で区切ったり、複数の SendEnv ディレクティブにまた がったりすることができる。
- パターンについて詳しくは PATTERNS を参照。
- パターンに - を付けると、以前に設定した SendEnv 変数名を消去することができる。 デフォルトでは、環境変数を送信しない。
- ServerAliveCountMax
- ssh がサーバからメッセージを受信せずに送信できる、サーバアライブメッセージ (下記参照) の数を設定する。 サーバアライブメッセージの送信中にこの閾値に達した場合、 ssh はサーバとの接続を切断し、セッションを終了させます。 サーバアライブメッセージの使い方は、TCPKeepAlive (後述) とは大きく異なることに注意することが重要である。 サーバアライブメッセージは、暗号化されたチャネルを介して送信されるため、なりすましはできまない。 TCPKeepAliveで有効なTCP keepaliveオプションは、なりすましが可能である。 サーバアライブの仕組みは、クライアントやサーバが接続が応答しなくなったときを知ることに依存している場合に有効である。
- たとえば、ServerAliveInterval (後述) を 15 に設定し、 ServerAliveCountMax を既定のままにすると、サーバが応答しなくなった場合、ssh は約 45 秒後に切断する。
- ServerAliveInterval
- サーバからデータを受信しなかった場合、 ssh は、サーバからの応答を要求するメッセージを暗号化されたチャネルを介して送信するまでのタイムアウト間隔を秒数で設定する。 デフォルトは 0 で、このメッセージはサーバに送信されないことを示し、BatchMode オプションが設定されている場合は 300 である (Debian 固有)。 ProtocolKeepAlives と SetupTimeOut は、このオプションの Debian 固有の互換性エイリアスである。
- SetEnv
- サーバに送信する 1 つ以上の環境変数とその内容を直接指定する。SendEnv と同様に、サーバは環境変数を受け入れる準備をしておく必要がある。
- StreamLocalBindMask
- ローカルまたはリモートのポート転送でUnixドメインソケットファイルを作成する際に使用する8進数のファイル作成モードマスク(umask)を設定する。 このオプションは、Unixドメインソケットファイルへのポートフォワーディングにのみ使用される。
- デフォルト値は0177で、所有者のみが読み取り/書き込み可能なUnixドメインソケットファイルが作成される。 すべてのオペレーティングシステムが、Unixドメインソケットファイルのファイルモードを尊重しているわけではないことに注意すること。
- StreamLocalBindUnlink
- ローカルまたはリモートポート転送用の既存の Unix ドメインソケットファイルを削除してから、新しいソケッ トファイルを作成するかどうかを指定する。 ソケットファイルがすでに存在し、StreamLocalBindUnlink が有効でない場合、ssh は Unix ドメインソケットファイルにポートを転送できない。 このオプションは、Unix ドメインのソケットファイルへのポート転送にのみ使用される。
- 引数には yes または no (既定) を指定する必要がある。
- StrictHostKeyChecking
- このフラグを yes に設定すると、ssh は ~/.ssh/known_hosts ファイルにホスト鍵を自動的に追加せず、 ホスト鍵が変更されたホストへの接続を拒否するようになる。 これは中間者攻撃 (MITM) に対する最大の防御となるが、 /etc/ssh/ssh_known_hosts ファイルのメンテナンスが不十分な場合や、 新しいホストへの接続が頻繁に行われる場合には、煩わしく感じることがある。 このオプションを使用すると、ユーザはすべての新しいホストを手動で追加することになる。
- このフラグを "accept-new" に設定すると、ssh は自動的に新しいホスト鍵をユーザの既知のホスト ファイルに追加するが、ホスト鍵が変更されたホストへの接続は許可しない。 このフラグが "no" または "off" に設定されている場合、 ssh は自動的に新しいホスト鍵をユーザが知っているホストファイルに追加し、 いくつかの制限を受けるが、ホスト鍵が変更されたホストへの接続を許可する。このフラグが "ask" に設定されている場合 (デフォルト)、 ユーザが本当にそうしたいと確認した後にのみ、新しいホスト鍵がユーザの既知のホスト ファイルに追加され、ssh はホスト鍵が変更されたホストへの接続を拒否するようになる。 既知のホストのホスト鍵は、すべての場合において自動的に検証される。
- SyslogFacility
- ssh からのメッセージを記録するときに使用されるファシリティコードを指定する。 指定可能な値は次のとおり。
- DAEMON、USER、AUTH、LOCAL0、LOCAL1、LOCAL2、LOCAL3、LOCAL4、LOCAL5、LOCAL6、LOCAL7
- である。 既定値は USER である。
- TCPKeepAlive
- システムが相手側にTCPキープアライブメッセージを送信するかどうかを指定する。 送信された場合、接続の切断やマシンのクラッシュが適切に通知される。 このオプションは TCP キープアライブのみを使用するため (ssh レベルのキープアライブを使用するのとは対照的)、 接続が切れたことを通知するのに長い時間がかかる。 そのため、おそらく ServerAliveInterval オプションも必要である。 しかし、これはルートが一時的にダウンした場合に接続が切れることを意味し、 これを煩わしいと感じる人もいる。
- デフォルトは yes (TCP キープアライブメッセージを送る) で、ネットワークがダウンしたりリモートホストが死んだりすると、クライアントはそれに気づく。 これはスクリプトでは重要であり、多くのユーザもそれを望んでいる。
- TCPキープアライブメッセージを無効にするには、この値をnoに設定する必要がある。 プロトコルレベルのキープアライブについては ServerAliveInterval も参照すること。
- Tunnel
- クライアントとサーバ間の tun(4) デバイス転送を要求する。 引数は、yes、point-to-point (レイヤ 3)、ethernet (レイヤ 2)、または no (デフォルト) でなければならない。 yes を指定すると、デフォルトのトンネルモードであるポイントツーポイントが要求される。
- TunnelDevice
- クライアント (local_tun) とサーバ (remote_tun) でオープンする tun(4) デバイスを指定する。
- 引数は local_tun[:remote_tun] でなければならない。 デバイスは、数値 ID またはキーワード any で指定することができ、これは次に利用可能なトンネルデバイスを使用する。 remote_tun が指定されない場合、デフォルトは any である。 デフォルトは、any:any である。
- UpdateHostKeys
- ssh が、認証の完了後に送信されるサーバからの追加のホスト鍵の通知を受け取り、それらを UserKnownHostsFile に追加すべきかどうかを指定する。 引数は yes、no または ask でなければならない。 このオプションは、サーバの代替ホスト鍵を学習することを可能にし、古い鍵が削除される前にサーバが代替の公開鍵を送信することを可能にすることで、緩やかな鍵ローテーションをサポートする。 追加のホスト鍵は、ホストの認証に使用された鍵がすでに信頼されているか、 ユーザによって明示的に受け入れられている場合にのみ受け入れられる。
- UpdateHostKeys は、ユーザがデフォルトの UserKnownHostsFile 設定を上書きしていない場合、デフォルトで有効になり、それ以外の場合、UpdateHostKeys は ask に設定される。
- UpdateHostKeysがaskに設定されている場合、ユーザはknown_hostsファイルへの変更を確認するよう要求される。 確認は現在ControlPersistと互換性がないため、有効にすると無効になる。
- 現在のところ、OpenSSH 6.8 以降の sshd だけが、 サーバのすべてのホストキーをクライアントに通知するために使われる "hostkeys@openssh.com" プロトコル拡張をサポートしている。
- User
- ログインするユーザーを指定する。 これは、異なるマシンで異なるユーザー名を使用する場合に便利である。 コマンドラインでユーザー名を指定する手間を省くことができる。
- UserKnownHostsFile
- ユーザホスト鍵データベースに使用する1つまたは複数のファイルを空白で区切って指定する。 各ファイル名には、ユーザのホームディレクトリ、TOKENSセクションで説明されているトークン、およびENVIRONMENT VARIABLESセクションで説明されている環境変数を参照するためにチルダ表記を使用することができる。デフォルトは ~/.ssh/known_hosts, ~/.ssh/known_hosts2 である。
- VerifyHostKeyDNS
- DNS および SSHFP リソースレコードを使用してリモート鍵を検証するかどうかを指定する。 このオプションを yes に設定すると、クライアントは DNS からの安全なfingerprintに一致する鍵を暗黙的に信頼するようになる。安全でないfingerprintは、このオプションが ask に設定されている場合と同様に処理される。 このオプションを ask に設定すると、fingerprintの一致に関する情報が表示されるが、 ユーザーは StrictHostKeyChecking オプションに従って新しいホスト鍵を確認する必要がある。 デフォルトは no である。
- ssh の VERIFYING HOST KEYS も参照すること。
- VisualHostKey
- このフラグを yes に設定すると、リモートホスト鍵のfingerprint の ASCII アート表現が、ログイン時および不明なホスト鍵の指紋文字列に追加して表示される。 このフラグを no (デフォルト) に設定すると、ログイン時にfingerprint文字列は表示されず、 未知のホスト鍵に対してはfingerprint文字列のみが表示される。
- XAuthLocation
- xauth プログラムのフルパスを指定する。デフォルトは、/usr/bin/xauth。
PATTERNS
パターンは、0個以上の非空白文字、'*'(0個以上の文字にマッチするワイルドカード)、または'?'(正確に1文字にマッチするワイルドカード)を使用する。 たとえば、「.co.uk」ドメインの集合に含まれる任意のホストに対する宣言の集合を指定するには、次のパターンを使用する。
Host *.co.uk
次のパターンは、192.168.0.[0-9]のネットワーク範囲にあるすべてのホストにマッチする。
Host 192.168.0.?
pattern-listは、カンマで区切られたパターンのリストである。 pattern-list内のパターンは、その前にエクスクラメーションマーク('!')を付けることで否定することができる。 たとえば、「ダイヤルアップ」プール以外の組織内の任意の場所からキーを使用できるようにするには、次のエントリ (authorized_keys 内) を使用する。
from="!*.dialup.example.com,*.example.com"
否定されたマッチは、それ自体では決して肯定的な結果をもたらさないことに 注意。 たとえば、次のパターンリストに対して "host3"をマッチさせようとすると、失敗する。
from="!host1,!host2"
この場合の解決策は、ワイルドカードのような、正の一致をもたらす用語を含めることである。
from="!host1,!host2,*"
TOKENS
キーワードの引数には、実行時に展開されるトークンを使用できるものがある。
- %% リテラル '%' である。
- %C %l%h%p%r のハッシュである。
- %d ローカル・ユーザのホーム・ディレクトリである。
- %h ローカル・ユーザのホーム・ディレクトリ :%h リモート・ホスト名。
- %i ローカル・ユーザ ID。
- %k 指定されている場合はホスト鍵のエイリアス、指定されていない場合はコマンドラインで指定された実際のリモート・ホスト名である。
- %L ローカル・ホスト名である。
- %l ローカル・ホスト名 (ドメイン名を含む)。
- %n コマンドラインで指定された元のリモートホスト名である。
- %p リモート・ポートである。
- %r リモートのユーザー名である。
- %T トンネル転送が要求された場合に割り当てられるローカルの tun(4) または tap(4) ネットワークインターフェイス、そうでない場合は "NONE" である。
- %u ローカルのユーザー名である。
CertificateFile、ControlPath、IdentityAgent、IdentityFile、LocalForward、Match exec、RemoteCommand、 RemoteForward、および UserKnownHostsFile はトークン %%、%C、%d、%h、%i、%L、%l、 %n、%p、%r、および %u を受け入れる。
Hostname は、トークン %% と %h を受け入れる。
LocalCommand はすべてのトークンを受け付ける。
ProxyCommand は、トークン %%、%h、%n、%p、および %r を受け入れる。
ENVIRONMENT VARIABLES
いくつかのキーワードの引数は、実行時にクライアントの環境変数から ${} で囲んで展開できる。たとえば、 ${HOME}/.ssh は、ユーザーの .ssh ディレクトリを参照する。 指定した環境変数が存在しない場合、エラーが返され、そのキーワードの設定は無視される。
キーワードCertificateFile、ControlPath、IdentityAgent、IdentityFile、および UserKnownHostsFile は環境変数に対応している。 キーワード LocalForward および RemoteForward は、Unix ドメインソケットパスのみ環境変数をサポートする。
FILES
- ~/.ssh/config
- これは、ユーザーごとの設定ファイルである。 このファイルの形式は前述したとおりです。 このファイルは、SSH クライアントによって使用される。 悪用される可能性があるため、このファイルには厳密なパーミッションが必要である:
- ユーザーは読み取り/書き込みが可能で、他の人は書き込みができない。 ただし、そのグループにそのユーザーしか含まれていない場合は、グループ書き込みが可能である。
- /etc/ssh/ssh_config
- システム全体のコンフィギュレーション・ファイル。 このファイルは、ユーザーのコンフィギュレーション・ファイルで指定されていない値、およびコンフィギュレーション・ファイルを持っていないユーザーのためのデフォルトを提供する。このファイルは、globalで読み取り可能でなければならない。
SEE ALSO
AUTHORS
OpenSSH is a derivative of the original and free ssh 1.2.12 release by Tatu Ylonen. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt and Dug Song removed many bugs, re-added newer features and created OpenSSH. Markus Friedl contributed the support for SSH protocol versions 1.5 and 2.0.
External Link
この記事は、Debianのmanpageの項目を翻訳一部改変しております。 |