SSH_CONFIG (5)

OpenSSH-7.3p1 日本語マニュアルページ (2016/10/15)


名前

ssh_config
OpenSSH SSH クライアント 設定ファイル

書式

~/.ssh/config /etc/ssh/ssh_config

説明

ssh (1) は以下のものから (この順序で) 設定情報を取得します:

コマンドラインオプション

ユーザごとの設定ファイル
~/.ssh/config

システム全体にわたる (system-wide) 設定ファイル
/etc/ssh/ssh_config

各設定項目にはそれぞれ最初に見つかったものが使われます。設定ファイルはいくつかのセクションに分かれており、これらは"Host"キーワードにより区切られています。あるセクションの設定が適用されるのは、通常コマンドラインから与えられたホスト名が、このキーワードで指定されているパターンのどれかにマッチするときだけです。(例外についてはCanonicalizeHostnameを参照。)

各設定項目で最初に見つかった値が使われるので、ホストに特化した宣言をファイルの先頭近くに置くようにし、一般的なものを後に置くのがよいでしょう。

設定ファイルは以下のような形式になっています:

空行、および # で始まる行は、コメントとみなされます。それ以外の場合、この行は"キーワード 引数"という形式になっています。キーワードと引数は、空白またはひとつの = (間に空白を含んでいてもよい) によって区切られます。後者の形式は、ssh ,scp およびsftp などで-o オプションを使って設定項目を指定するときに、空白をクォートする必要がないようにするためです。空白を含む引数は、ダブルクォート

で囲んで表現することもできます。

とりうるキーワードとその意味は以下のとおりです(キーワードは大文字小文字どちらでもかまいませんが、その引数は大文字小文字が区別されることに注意してください) :

Host (ホスト)
これ以後の (次のHostまたはMatchキーワードが現れるまでの) 設定項目を、ここで指定されたパターンのどれかにマッチするホストだけに制限します。複数のパターンを与える場合は、それらを空白で区切ってください。 * は、すべてのホストに対するデフォルトとして使えます。ここでいうホストとは、通常はコマンドライン引数で与えられたホスト名 そのもののことです(例外についてはCanonicalizeHostnameを参照してください。)

パターンの前に感嘆符

`!'
をつけると否定の意味になります。否定されたパターンにマッチした場合、行中のほかのパターンがマッチしたときでもHost項目は無視されます。したがって、否定のパターンはワイルドカードに対する例外を記述するのに有用です。

パターン (ワイルドカード文字) についての詳細はパターンの項を参照してください。

Match (マッチ)
このキーワードに続いて現れる条件が満たされた時のみ、(次のHostまたはMatchキーワードが現れるまで)以下の宣言を有効にします。Match 指令の引数は、ひとつ以上の指定か、あるいは常にマッチする単一の引数allによって与えられます。使用可能なキーワードとして:canonical ,exec ,host ,originalhost ,user ,および+.Cm localuserがあります。allキーワードは単一で使われるか、あるいはcanonicalの直後に来る必要があります。これ以外のキーワードは任意の組み合わせが可能です。allおよびcanonicalをのぞくすべてのキーワードには、引数が必要です。キーワードは感嘆符
`! .'
を前につけることで否定することができます。

Thecanonicalキーワードは、ホスト名の正規化されたあとに設定ファイルが再度読み込まれた時にのみマッチします。(CanonicalizeHostnameを参照。)これは正規化されたホスト名のみに対して指定したい条件があるときに有用です。execキーワードは、指定されたコマンドをそのユーザのシェルで実行します。このコマンドが終了状態ゼロを返した場合、この条件は真であるとみなされます。コマンド名が空白文字を含む場合はクォートする必要があります。コマンド中に現れる以下の文字列シーケンスは、コマンドの実行前に展開されます: %L はローカルのホスト名の最初の部分に、 %l はローカルのホスト名 (ドメイン名がある場合はそれも含む) に、 %h は対象のリモートホスト名に、 %n はもとのコマンドラインで指定されたホスト名に、 %p はポートに、 %r はリモート側のログイン名に、そして %ussh (1) を実行するユーザのログイン名に変換されます。

これ以外のキーワードは、単一の引数かカンマで区切られたリストであり、パターンの項にあるワイルドカードまたは否定演算子を使うことができます。hostキーワードの引数はHostnameまたはCanonicalizeHostname項目による置換後の対象ホスト名と比較されます。originalhostキーワードは、コマンドラインで指定されたホスト名と比較されます。userキーワードは、リモートホスト上の対象ユーザ名と比較されます。localuserキーワードは、ローカルホスト上でssh (1) を走らせているユーザ名と比較されます。(このキーワードは、システム全体でssh_config ファイルを使用するときに有用です)

AddKeysToAgent (エージェントに鍵を追加)
実行中の+Specifies whether keys should be automatically added to a runningssh-agent (1) に自動的に鍵を追加するかどうかを指定します。この項目が"yes"に設定されている場合、鍵がファイルから読み込まれるとその鍵およびパスフレースをssh-add (1) に与えるのと同じ方法で認証エージェントに追加されます。鍵の有効時間はデフォルトの値が使われます。この項目が"ask"に設定されている場合、sshSSH_ASKPASS プログラムを使って鍵を追加してよいかどうか確認します。(詳細はssh-add (1) を参照)。この項目が"confirm"に設定されている場合、ssh-add (1)-c オプションを与えたのと同様に、この鍵を使用するたびに確認をとります。この項目が"no"に設定されている場合、鍵は認証エージェントに追加されません。とりうる値は"yes ,""confirm ,""ask"あるいは"no"のいずれかです。デフォルトの値は"no"です。

AddressFamily (アドレスファミリ)
接続時にどのアドレスファミリを利用するかを指定します。指定できる値は"any"、"inet"(IPv4 のみを使用する) または"inet6"(IPv6 のみを使用する) のいずれかになります。デフォルトの値は"any"です。

BatchMode (バッチ処理モード)
これが"yes"に設定されていると、パスフレーズおよびパスワードの入力を求めないようになります。この設定項目はスクリプトなどにおけるバッチ処理中で、パスワードを打ち込むユーザがいない場合に便利です。引数の値は"yes"あるいは"no"です。デフォルトは"no (パスワードあるいはパスフレーズの入力を求める)"です。

BindAddress (bind するアドレス)
ローカルマシン上で、指定されたアドレスを接続のソース側アドレスとして使用します。この機能が有用なのは、複数のIPアドレスをもっているマシン上のみです。この設定はUsePrivilegedPort項目が"yes"になってるときは機能しないので注意してください。

CanonicalDomains (正規ドメイン)
CanonicalizeHostnameが有効な場合、この設定項目は特定の対象ホストを検索するさいに付加されるドメインのリストを指定します。

CanonicalizeFallbackLocal (正規化失敗時のふるまい)
ホスト名の正規化に失敗した場合、エラーとみなすかどうかを指定します。デフォルトではこれは"yes"であり、失敗時にシステムのリゾルバを使用してqualifyされていないホスト名で接続しようとします。この値を"no"に指定すると、CanonicalizeHostnameが有効な場合、対象となるホストがCanonicalDomainsで指定されたドメイン内に見つからなければssh (1) は即座にエラーとなります。

CanonicalizeHostname (ホスト名正規化)
明示的なホスト名の正規化をおこなうかどうかを指定します。デフォルトでは"no"であり、ホスト名の書き換えはおこなわず、システムのリゾルバにすべてのホスト名解決を一任します。この項目で"yes"を指定すると、ProxyCommandを使わない接続ではssh (1) はコマンドラインで指定されたホスト名をCanonicalDomains項目のサフィックスおよびCanonicalizePermittedCNAMEsの規則にもとづいて正規化しようとします。CanonicalizeHostnameが"always"に指定されている場合、ホスト名の正規化はプロキシ経由の接続に対してもおこなわれます。

この項目が有効の場合、設定ファイルは新しい名前を使ってもう一度読み込まれ、HostまたはMatch節にマッチする新しい設定項目が使用されます。

CanonicalizeMaxDots (正規化時の最大ドット数)
正規化が禁止されるまでホスト名の前に許される最大のドット数を指定します。デフォルトは"1"であり、単一のドットしか許しません (例: hostname.subdomain)。

CanonicalizePermittedCNAMEs (正規化時のCNAMEの使用)
ホスト名を正規化する際に、CNAME に従う場合の規則を指定します。ここでの規則はsource_domain_list :target_domain_list からなるひとつ以上の引数で表されます。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"ドメインの名前に正規化できることを意味します。

CertificateFile (証明書ファイル)
ユーザの証明書を読み込むファイルを指定します。この証明書を使うには、これに対応する秘密鍵をIdentityFile設定項目か、PKCS11Providerまたはssh-agent (1) を経由したssh (1)-i オプションで別に与える必要があります。

ファイル名にはユーザのホームディレクトリを表すのにチルダ表記を使うことができ、他にも以下のエスケープ文字が使えます: %d (ローカルユーザのホームディレクトリ), %u (ローカルのユーザ名), %l (ローカルのホスト名), %h (リモートのホスト名) または %r (リモートのユーザ名)。

設定ファイルの中で複数の証明書ファイルを指定することもできます。その場合は、証明書が順に試されます。複数のCertificateFile設定項目は認証に使う証明書の一覧に追加します。

ChallengeResponseAuthentication (チャレンジ・レスポンス認証)
チャレンジ・レスポンス認証をおこなうかどうかを指定します。この引数がとりうる値は"yes"あるいは"no"です。デフォルトでは"yes (チャレンジ・レスポンス認証をおこなう)"になっています。

CheckHostIP (ホスト IP の検査)
この項目が"yes"に設定されていると、ssh (1) は接続先ホスト名の IP アドレスがknown_hostsに書かれている同一ホスト名 IP アドレスと同じかどうか検査するようになります。これによって、DNS 詐称によりホスト鍵が変えられたことを検出でき、宛て先のホストアドレスはStrictHostKeyChecking .の設定にかかわらず~/.ssh/known_hostsファイルに追加されます。この項目が"no"に設定されている場合は、この検査はおこなわれません。デフォルトでは、これは"yes (ホスト IP アドレスの検査をおこなう)"になっています。

Cipher (暗号方式)
プロトコル 1 のセッションで使う暗号方式を指定します。現在のところ"blowfish""3des"および"des"がサポートされており、デフォルトは"3des"です。des は、3des 暗号をサポートしていない、もはや古くなったプロトコル 1 の実装と相互運用するためにのみサポートされています。純粋な des 暗号は弱いため、使用はおすすめしません。

Ciphers (複数の暗号方式)
プロトコル 2 で使う暗号方式の優先順位を指定します。複数の暗号方式をカンマで区切って指定します。指定された値が `+' 文字から始まっている場合、この暗号方式はデフォルトの方式を置き換えるのではなく、追加されます。

現在のところ、サポートされている暗号方式は以下のとおりです:

3des-cbc

aes128-cbc

aes192-cbc

aes256-cbc

aes128-ctr

aes192-ctr

aes256-ctr

aes128-gcm@openssh.com

aes256-gcm@openssh.com

arcfour

arcfour128

arcfour256

blowfish-cbc

cast128-cbc

chacha20-poly1305@openssh.com

デフォルトは:

chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,aes128-cbc,aes192-cbc,aes256-cbc,3des-cbc
の順になっています。

使用可能な暗号方式の一覧は、ssh (1.) に対して-Q オプションと引数"cipher"を使用しても見ることができます。

ClearAllForwardings (すべてのポート転送をキャンセル)
設定ファイルあるいはコマンドラインで指定された、ローカル、リモートおよびダイナミックなポート転送をすべてキャンセルします。この項目は設定ファイルで指定されているポート転送をssh (1) のコマンドラインで打ち消すためにあり、scp (1)sftp (1) で自動的に使われます。この引数の値は"yes"あるいは"no"です。デフォルトでは"no"になっています。

Compression (圧縮)
データ圧縮をおこなうかどうかを指定します。引数の値は"yes"あるいは"no"です。デフォルトでは"no (圧縮をおこなわない)"になっています。

CompressionLevel (圧縮レベル)
圧縮をおこなう際の圧縮レベルを指定します。この引数がとる値は整数の 1 (速い) から 9 (遅い、高圧縮率) までです。デフォルトの値は 6 で、ほとんどのアプリケーションにはこれで充分です。この値の意味はgzip (1) と同じです。この項目はプロトコル 1 にのみ適用されることに注意してください。

ConnectionAttempts (接続試行回数)
接続を試みる回数 (1 秒に 1 回) を指定します。これを越えるとssh は終了してしまいます。この値は整数でなければなりません。これは、ときどき接続に失敗する環境でのスクリプトなどに便利です。デフォルトは 1 回です。

ConnectTimeout (接続タイムアウト)
SSH サーバに接続するときのタイムアウト時間を秒数で指定します。デフォルトの TCP タイムアウト時間に代わってこの値が使われます。この値は相手先ホストがダウンしているときか実際に到達不可能なときに使用され、接続が拒否されたときには使用されません。

ControlMaster (マスターかどうか)
単一のネットワーク接続で、複数のセッションを共有します。これが"yes"に設定されている場合、ssh (1)ControlPathの引数で指定された制御用のソケットを listen します。追加のセッションを開くには、同じソケットをControlPathに指定し、ControlMasterには"no"を指定します (これがデフォルト)。こうすると、そのセッションは新たにネットワーク接続するのではなく、すでにある Master インターフェイスのネットワーク接続の再利用を試みるようになります。ただし制御用ソケットが存在しないか、listen されていない場合は通常の接続になります。

この値を"ask"に指定すると、ssh は制御用のソケットを listen しますが、これを受けつける際にssh-askpass (1) プログラムによる確認を要求します。もしControlPathがオープンできない場合、ssh は Master への接続なしに処理を継続します。

X11 およびssh-agent (1) 中継は共有した接続の中でも有効ですが、中継する X11 ディスプレイおよびエージェントは Master の接続に所属しているものになります。つまり、複数のディスプレイやエージェントを転送することはできません。

このほかに、オプションとしてさらに 2 種類の方式が指定できます。"auto"または"autoask"を使うと、これらは Master 接続が利用できないときに、自動的に新しい接続を作ります (opportunistic multiplexing)。この場合、後者は"ask"オプションのように、ユーザに確認を求めます。

ControlPath (制御用パス名)
上のControlMaster項目で説明されている、ネットワーク接続を共有する際の制御用ソケットのパス名を指定します。接続の共有を禁止する場合は"none"を指定してください。このパス名の中ではエスケープシーケンスが利用でき、その場合 %L はローカルのホスト名の最初の部分に、 %l はローカルのホスト名 (ドメイン名がある場合はそれも含む) に、 %h は対象のリモートホスト名に、 %n はもとのコマンドラインで指定されたホスト名に、 %p は宛先のポートに、 %r はリモート側のログイン名に、 %u%i はそれぞれssh (1) 実行ユーザのログイン名とユーザID (uid) の数値に、そして %C は %l%h%p%r を連結したハッシュ値に変換されます。Master 接続が利用できないときに自動的に新しい接続を作るよう指定した場合(opportunistic multiplexing)、ControlPathの値には少なくとも %h, %p および %r (または %C) のエスケープシーケンスをすべて含めておき、また他のユーザには書き込めないディレクトリ中に指定することが推奨されます。こうすることで、共有する接続を一意に定めることができます。

ControlPersist (制御の持続)
これはControlMaster項目と組み合わせて使います。この項目は、最初のクライアント接続が閉じられた後でも、(以後の接続のために)バックグラウンドで Master 接続を開いたままにするよう指示します。この値が"no"に設定されている場合、Master接続はバックグラウンドには移行せず、最初のクライアントが終了した直後に閉じられます。この値が"yes"または"0"の場合、Master接続はバックグラウンドで永続的に(kill されるか、ssh (1) "Fl O No exit"のような方法で閉じられるまで)待ちつづけます。この値として秒数を指定するか、あるいはsshd_config (5) で指定されている時間の形式を与えると、バックグラウンドの接続は指定された時間だけ idle な(クライアントが接続してこない) 状態が続いた後に自動的に閉じられます。

DynamicForward (動的なポート転送)
暗号化された通信路を経由して、ローカルホスト側の TCP ポートを転送するよう指定します。このとき、どのリモートホストから接続するかを決定するためにアプリケーションレベルのプロトコルが使われます。

引数の値は [bindするアドレス :] ポート の形式です。IPv6 アドレスは、ブラケット [ ] で囲むことにより指定します。デフォルトでは、ローカルのポートはGatewayPortsの設定にしたがって bind されますが、bindするアドレス を明示的に書いておくことにより、特定のアドレスに bind させることもできます。bindするアドレス を"localhost"にすると、listen するポートはローカル専用になり、アドレスを指定しないか `*' にすると、ポートはすべてのネットワークインターフェイスで使用可能になります。

今のところ SOCKS4 および SOCKS5 プロトコルが使われており、ssh (1) は SOCKS サーバのようにふるまいます。複数のポート転送も指定でき、コマンドラインからこれを追加することもできます。特権ポートを転送できるのは root だけです。

EnableSSHKeysign (ssh-keysign を使用する)
システム設定ファイル/etc/ssh/ssh_configでこの項目を"yes"に設定すると、HostbasedAuthenticationの際にssh-keysign (8) の使用が許可されます。引数の値は"yes"あるいは"no"です。デフォルトは"no"になっています。この項目はホストに依存しない部分に記述すべきです。詳しくはssh-keysign (8) を参照してください。

EscapeChar (エスケープ文字)
エスケープ文字を設定します (デフォルトは ~ )。エスケープ文字はコマンドラインからも指定できます。この引数には 1 つの文字か、 ^ に 1 文字を付けたもの、あるいはエスケープ文字の使用をすべて禁止するなら"none"を指定します (これはその接続を、バイナリデータに対して透過にすることになります)。

ExitOnForwardFailure (転送できない場合に終了)
要求された (ローカル、リモート、トンネリング、あるいはダイナミック)ポート転送すべてを設定できない場合(たとえば指定されたポートを bind または listen できない場合など)、ssh (1) を終了すべきかどうかを指定します。注意:ExitOnForwardFailureはポート転送された接続そのものに対しては適用されません。つまり、最終的な転送先への TCP 接続が失敗してもssh (1) が終了することはありません。引数は"yes"あるいは"no"のどちらかで、デフォルトは"no (転送できない場合にも終了しない)"です。

FingerprintHash (鍵の指紋ハッシュ)
鍵の指紋を表示するさいに使われるハッシュ関数のアルゴリズムを指定します。とりうる値は:"md5"または"sha256"です。デフォルトでは"sha256"になっています。

ForwardAgent (エージェント転送)
認証エージェントへの接続を、(それが存在する時は) リモートマシン上に転送するかどうかを指定します。この引数の値は"yes"あるいは"no"でなければならず、デフォルトは"no (エージェント転送をおこなわない)"です。

認証エージェントの転送には注意が必要です。リモートホスト上で (エージェントの UNIX ドメインソケットに対する)ファイルアクセス権限を無視できてしまうユーザがいる場合は、転送された接続を介してローカル側の認証エージェントにアクセスできてしまうことになります。攻撃側は認証エージェントから鍵そのものを盗むことはできませんが、認証エージェントがもっている鍵に認証をおこなわせることはできます。

ForwardX11 (X11 転送)
X11 接続を自動的に安全な通信路へリダイレクトし、DISPLAY を設定するかどうかを指定します。この引数の値は"yes"あるいは"no"でなければならず、デフォルトは"no (X11 接続を転送しない)"です。

X11 の転送には注意が必要です。リモートホスト上で (そのユーザの X11 認証のための) ファイルアクセス権限を無視できてしまうユーザがいる場合は、転送された接続を介してローカル側のX11 ディスプレイにアクセスできてしまうことになります。もし、ForwardX11Trusted項目も許可されていたとすると、攻撃側はキーストロークを盗み見るなどの行為が可能になってしまうかもしれません。

ForwardX11Timeout (X11転送タイムアウト)
信頼されていない X11 転送における、タイムアウトを指定します。時間の指定方法は、sshd_config (5) にある「時間の表現」セクションに書かれています。ssh (1) が受けつける X11 接続は、この時間が過ぎたあとは拒否されます。デフォルトでは、20分が経過すると信頼されていない X11接続は禁止されるようになっています。

ForwardX11Trusted (信頼された X11 転送)
この項目が"yes"の場合、リモートの X11 クライアントは元の X11 ディスプレイに対する完全なコントロールが可能になります。

この項目が"no"に設定されている場合、リモートの X11 クライアントは信頼できないとみなされ、信頼された X11 クライアントに属するデータを盗み見たり改竄したりすることはできません。さらに、このセッションで使われるxauth (1) トークンは 20 分後に期限が切れるよう設定されており、リモート側のクライアントは、この時間を過ぎるとアクセスを拒否されるようになります。

デフォルトでは"no"になっています。

信頼できないクライアントに課される制限についての完全な情報は、X11 SECURITY 拡張機能の仕様書を参照してください。

GatewayPorts (ポート転送の中継)
ローカルからリモートへ転送されている (リモート→ローカルのポート転送)ポートに、他ホストからの接続を許すかどうかを指定します。デフォルトでは、ssh (1) は転送されたローカルポートをループバックアドレス (127.0.0.1) にbind します。このため他の (訳注: サーバ以外の) ホストが転送されたポートに接続することはできません。GatewayPortsを使うと、ssh は転送されたローカルポートをワイルドカードアドレス (0.0.0.0) にbind するようになります。これは他のホストもその転送されたポートに接続できるということです。この引数の値は"yes"または"no"で、デフォルトは"no (転送されているポートに他ホストからの接続を許可しない)"に設定されています。

GlobalKnownHostsFile (大域的 known_host ファイル)
そのホスト全体で大域的に使用されるホスト鍵データベースファイルを空白で区切って指定します。デフォルトは/etc/ssh/ssh_known_hosts/etc/ssh/ssh_known_hosts2です。

GSSAPIAuthentication (GSSAPI 認証)
GSSAPI ベースの認証をおこなうかどうかを指定します。デフォルトの値は"no"です。

GSSAPIDelegateCredentials (証明書の転送)
証明書 (credential) をサーバに転送 (委譲) するかどうかを指定します。デフォルトは"no"になっています。

HashKnownHosts (known_hostsをハッシュする)
ssh (1) が新しいホストを~/.ssh/known_hostsに追加するとき、そのホスト名および IP アドレスをハッシュするよう指定します。これらのハッシュされた名前はssh (1) およびsshd (8) によって使われますが、たとえこれらの情報が見られても識別可能な情報が明らかになることはありません。この値は、デフォルトでは"no"になっています。すでに known_hosts 中にある名前に対して、あとからハッシュ化が適用されることはありませんが、ssh-keygen (1) を使えばこれらも手動でハッシュすることができます。

HostbasedAuthentication (ホストベースド認証)
ホスト間認証を使った rhosts ベースの認証をおこなうかどうかを指定します。とりうる引数の値は"yes"または"no"で、デフォルトは"no (ホストベースド認証を試みない)"になっています。

HostbasedKeyTypes (ホスト鍵の形式)
ホストベースド認証に使われる鍵の形式をカンマで区切って指定します。これ以外にも、指定された値が `+' 文字から始まっている場合、指定された鍵の形式はデフォルトを置き換えるのではなく、追加されます。この項目に対するデフォルトの値は:
ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,ssh-rsa
です。

ssh (1)-Q オプションを使うと、サポートされている鍵の形式の一覧を見ることができます。

HostKeyAlgorithms (ホスト間認証の方式)
ホスト間認証で使われる方式を指定します。クライアントはここで指定された優先順位の方式を使って認証を試みます。これ以外にも、指定された値が `+' 文字から始まっている場合、指定された認証の方式はデフォルトを置き換えるのではなく、追加されます。この項目のデフォルトは
ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,ssh-rsa
です。

相手ホストのホスト鍵がわかっている場合、これらのデフォルト値は相手のアルゴリズムに合うよう修正されます。

ssh (1)-Q オプションに引数"key"を指定して使うと、サポートされている鍵の形式の一覧を見ることができます。

HostKeyAlias (ホスト鍵のエイリアス)
ホスト鍵データベースからホスト鍵を検索するとき、あるいはデータベースにホスト鍵を保存するときに、実際のホスト名のかわりに使われる名前を指定します。この項目は SSH 接続をトンネリングしているときや、単一のホスト上で複数の sshd サーバを動かしているときなどに便利です。

HostName (実際のホスト名)
実際にログインするホスト名を指定します。デフォルトではssh_config はコマンドラインで与えられたホスト名に接続しますが、これを使うと、ホストのニックネームや省略形を使用することができます。ホスト名の部分に %h という文字列が含まれている場合、これはコマンドラインで指定されたホスト名に置き換えられます(これは qualify されていないホスト名を処理するときに有用です)。文字列 %% は単一の % に置き換えられます。これは IPv6リンクローカルのアドレスを指定する時に必要になる場合があります。

デフォルトは、コマンドラインで指定された名前になります。数字の IP アドレスでもかまいません(コマンドライン、HostNameキーワードの両方とも)。

IdentitiesOnly (ファイルに格納された秘密鍵のみを使用)
認証の際に、たとえ認証エージェントssh-agent (1) またはPKCS11Providerが複数の秘密鍵を持っていた場合でも、ssh_config ファイルかssh (1) のコマンドラインから明示的に指定された秘密鍵および証明書のみを使用するよう指定します。この引数のとりうるキーワードは"yes"または"no"です。この項目を使うのは、ssh-agent が多くの異なる秘密鍵を返すような状況でしょう。デフォルトでは"no"になっています。

IdentityAgent (認証エージェント)
認証エージェントとの通信に使うUnixソケットを指定します。

この設定項目は"SSH_AUTH_SOCK"環境変数で指定された値よりも優先され、特定のエージェントを選択するのに使うことができます。ソケットの名前に"none"を指定すると、認証エージェントの使用は禁止されます。文字列"SSH_AUTH_SOCK"を指定すると、ソケットの場所はSSH_AUTH_SOCK 環境変数で指定された値になります。

ソケットの名前では、ユーザのホームディレクトリを表すのにチルダ表記を使うことができ、他にも以下のエスケープ文字が使えます: %d (ローカルユーザのホームディレクトリ), %u (ローカルのユーザ名), %l (ローカルのホスト名), %h (リモートのホスト名) または %r (リモートのユーザ名)。

IdentityFile (identity ファイル)
ユーザの DSA, ECDSA, Ed25519 または RSA 認証用 identity (秘密鍵) を読むファイルを指定します。デフォルトは、プロトコル 1 の場合ユーザのホームディレクトリにある~/.ssh/identityファイルが、プロトコル 2 の場合は~/.ssh/id_dsa ,~/.ssh/id_ecdsa ,~/.ssh/id_ed25519および~/.ssh/id_rsaが使われます。IdentitiesOnlyが設定されていない場合は、これに加えて認証エージェントによって現れる identity も使われます。証明書がCertificateFileによって明示的に指定されていない場合、ssh (1) は、IdentityFileで指定されるパス名に-cert.pubを追加した名前のファイルから、証明書に関する情報を読み込もうとします。

ユーザのホームディレクトリを表すのにチルダ表記や、以下のエスケープ文字を使うこともできます: %d (ローカルユーザのホームディレクトリ)、 %d (ローカルのユーザ名)、 %l (ローカルホスト名)、 %h (リモートホスト名)、あるいは %r (リモートのユーザ名)。

設定ファイルでは複数の identity を指定することもでき、この場合すべての identity が順に試されます。複数のIdentityFileが指定された場合、これは試す identity の一覧に追加されます(このふるまいは他の設定項目とは異なるものです)。

IdentityFileIdentitiesOnlyと組み合わせることによって、エージェントが認証時にどの identity を提供するかを選択することができます。IdentityFileCertificateFileと組み合わせて、その秘密鍵の認証で使われる証明書を指定することもできます。

IgnoreUnknown (不明な項目を無視)
設定ファイルを解析する際に不明な項目がある場合、それらを無視するパターンのリストを指定します。この項目は、ssh_configssh (1) によって認識されない項目がある場合のエラーを防ぐのに使われます。IgnoreUnknown項目は、これ以前に現れた項目には反応しないため、この項目は設定ファイルの最初に書いておくことを推奨します。

Include (インクルード)
指定された設定ファイルをインクルードします。複数のパス名を指定することもでき、各パス名にglob (3) ワイルドカードを使うこともできます。ユーザの設定ファイルに対しては、ホームディレクトリを表す文字としてシェル同様に"~"が使えます。絶対パス名でないファイル名は、ユーザ設定ファイルの場合は~/.ssh以下のパスを指すと解釈され、システム設定ファイルの場合は/etc/ssh以下のパスを指すと解釈されます。Include指令はMatchまたはHost指定の中に書くこともでき、その場合は条件によってインクルードされるかどうかが決まります。

IPQoS (QoS指定)
接続における 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"となっています。

KbdInteractiveAuthentication (キーボード対話的認証)
キーボード対話的認証を使用するかどうかを指定します。このキーワードの引数は"yes"または"no"です。デフォルトは"yes"です。

KbdInteractiveDevices (キーボード対話デバイス)
keyboard-interactive 認証で使われる入力方法を指定します。複数の入力方法を指定する場合は、カンマで区切ってください。デフォルトではサーバが提供した方法の一覧を使用します。どの方法が使用できるかは、サーバのサポートによります。OpenSSH サーバの場合、これは以下の組み合わせになります:"bsdauth 、""pam 、"および"skey 。"

KexAlgorithms (鍵交換アルゴリズム)
利用可能な KEX (Key Exchange、鍵交換) アルゴリズムを指定します。複数のアルゴリズムはカンマで区切ってください。あるいは指定された値が `+' 文字から始まっている場合、この鍵交換方式はデフォルトの方式を置き換えるのではなく、追加されます。デフォルトは:
curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1

ssh (1)-Q オプションに引数"kex"を指定して使うと、サポートされている鍵交換方式の一覧を見ることができます。

LocalCommand (ローカルで実行するコマンド)
サーバへのログインが成功したあとにローカルマシン上で実行するコマンドを指定します。この行の終端までがコマンド文字列とみなされ、これはそのユーザのシェルによって実行されます。コマンド文字列では、以下のようなエスケープ文字が使用できます: %d (ローカル側でのホームディレクトリ), %h (リモート側でのホームディレクトリ), %l (ローカル側のホスト名), %n (コマンドラインで指定されたホスト名), %p (リモート側のポート), %r (リモート側のユーザ名) %u (ローカル側のユーザ名)あるいは、%l%h%p%r を連結したハッシュ値である %C

このコマンドは同期的に実行され、これを実行するssh (1) のセッションにアクセスすることはできません。これは、対話的なコマンドに使われるべきではありません。

PermitLocalCommandが許可されていない場合、この項目は無視されます。

LocalForward (ローカル→リモート転送)
ローカルマシンの TCP ポートを、安全な通信路を経由してリモートマシン上から与えられた host:port に転送するよう指示します(訳注: -L オプションと同じ)。最初の引数は [bindするアドレス :] ポート であり、2 番目の引数はホスト名 :ホスト側ポート で指定します。IPv6 アドレスは、ブラケット [ ] で囲むことにより指定します。ポート転送は複数指定することができ、コマンドラインから追加指定することもできます。特権ポートを転送できるのはスーパーユーザだけです。デフォルトでは、ローカル側のポートはGatewayPortsの設定に従って bind されますが、bindするアドレス を明示的に指定することで、特定のアドレスに接続をふり向けることができます。bindするアドレス として"localhost"を指定すると、ポートを listen するのはローカルな使用のみに限ることになります。いっぽう、空のアドレスまたは `*' を指定すると、そのポートはすべてのインターフェイスに対して使用可能になります。

LogLevel (ログレベル)
ssh (1) が出力するログの冗長性のレベルを指定します。とりうる値は次のとおりです:QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2および DEBUG3。デフォルトでは INFO になっています。DEBUG と DEBUG1 は等価です。DEBUG2、DEBUG3 はそれぞれさらに冗長なログになります。

MACs (メッセージ認証コード)
使用する MAC (メッセージ認証コード) 方式の優先順位を指定します。MAC 方式はデータの改竄を防ぐ機構 (data integrity protection) で、複数の方式をカンマで区切って指定します。指定された値が `+' 文字から始まっている場合、この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
の順になっています。

ssh (1)-Q オプションに引数"mac"を指定して使うと、サポートされているMAC方式の一覧を見ることができます。

NoHostAuthenticationForLocalhost (localhostでのホスト認証を抑制)
この項目はホームディレクトリがマシン間で共有されているときに使います。このような状況ではそれぞれ別々のマシンで localhost の指すホストが異なっているため、ユーザはホスト鍵が変わったという警告を受けてしまいます (訳注: 別々のホスト鍵をもつマシンで同一の localhostホスト鍵が共有されているため)。この項目を使うと、相手がlocalhost のときにはホスト間認証を抑制することができます。この引数がとりうる値は"yes"あるいは"no"です。デフォルトでは、相手が localhost でも鍵をチェックするようになっています。

NumberOfPasswordPrompts (パスワード試行回数)
パスワードを最高何回まで訊くかを指定します。この回数を超えると認証は失敗します。このキーワードには整数を指定する必要があります。デフォルト値は 3 です。

PasswordAuthentication (パスワード認証)
パスワード認証をおこなうかどうかを指定します。この引数の値は"yes"または"no"です。デフォルトでは"yes (パスワード認証をおこなう)"になっています。

PermitLocalCommand (ローカルなコマンド実行許可)
LocalCommand
設定項目か、あるいはssh (1)
! コマンド
エスケープシーケンスを使ったローカルなコマンド実行を許可します。引数の値は"yes"あるいは"no"でなければならず、デフォルトは"no"です。

PKCS11Provider (PKCS11プロバイダ)
どの PKCS#11 プロバイダを使うかを指定します。この項目の引数は、ssh (1) が使用する PKCS#11 共有ライブラリで、ユーザの RSA秘密鍵を提供する PKCS#11 トークンと通信するために使われます。

Port (ポート番号)
リモートホストに接続するときのポート番号を指定します。デフォルトのポートは 22 です。

PreferredAuthentications (認証の優先順位)
クライアントが試みる認証の優先順位を指定します。これによって、クライアントは特定の認証 (keyboard-interactiveなど) をそれ以外の認証 (passwordなど) よりも優先して選ぶことができます。デフォルトは
gssapi-with-mic,hostbased,publickey,keyboard-interactive,password
になっています。

Protocol (プロトコル)
ssh (1) がサポートすべきプロトコルの優先順位を指定します。とりうる値は `1' と `2' です。複数のプロトコルを指定するときはカンマで区切ってください。この値を"2,1"のようにすると、ssh はまず始めにプロトコル 2 がサポートされているかどうかを調べ、サーバがそれをサポートしていなかった場合にプロトコル 1 を使用します。(訳注: もしサーバ側がプロトコル 2 の認証をサポートしていた場合、プロトコル 2 での認証に失敗すると ssh はそこで終了します。プロトコル 1 の認証は *おこなわない* ため、注意してください)デフォルトは `2' です。プロトコル 1 にはいくつもの暗号上の弱点があり、使うべきではありません。これはレガシー・デバイスのサポート用のみに提供されています。

ProxyCommand (プロキシ コマンド)
サーバに接続するのに使用するコマンドを指定します。コマンド文字列はこのキーワード以後、行末まで書くことができます。コマンド文字列は、そのユーザのシェルによって実行されます。このとき、実行後にシェルが残らないように exec 指令が使われます。

コマンド文字列では、 %h は接続するホスト名に置換され、 %p はポートに置換され、 %r はリモートのユーザ名に置換されます。コマンドは基本的に何でもよいのですが、標準入力から読み込み、標準出力に書き込むようなものである必要があります。これは最終的にサーバマシン上で動いているsshd (8) に接続するか、どこか別の場所で

sshd -i
を起動させるようにします。ホスト鍵の管理は接続されているホストのHostName を使っておこなわれます (デフォルトでは、これはユーザがタイプした名前になります)。このコマンドを"none"に設定すると、このオプションは完全に使用禁止になります。プロキシ コマンドを使うと、CheckHostIP (ホスト IP アドレスの検査)は使用できませんので注意してください。

この設定項目は、nc (1) のプロキシ・サポートと組み合わせて使うのに有用です。たとえば、以下の設定では 192.0.2.0 の HTTP プロキシ経由で接続します:

ProxyCommand /usr/bin/nc -X connect -x 192.0.2.0:8080 %h %p

ProxyJump (プロキシ・ジャンプ)
ひとつあるいは複数のジャンプ・プロキシを [ユーザ @] ホスト [:ポート ] の形式で指定します。カンマで区切って、複数のプロキシを指定することもできます。これらは順に到達されます。この設定項目を指定すると、ssh (1) はまずProxyJump対象ホストにssh (1) で接続し、そこから最終的なホストに対してポート転送を確立します。

注意: この設定項目はProxyCommandと衝突することに注意してください。どちらか最初に指定された方が有効になり、あとの指定は効果がなくなります。

ProxyUseFdpass (プロキシでファイル記述子を使用)
接続中のファイル記述子をProxyCommandがそのまま実行を続けて渡すのではなく、ssh (1) に戻すよう指示します。デフォルトは"no"になっています。

PubkeyAcceptedKeyTypes (使用する公開鍵の形式)
公開鍵認証のさいに使用される鍵の形式をカンマで区切って指定します。指定された値が `+' 文字から始まっている場合、デフォルトの形式を置き換えるのではなく、追加されます。この項目のデフォルト値は以下のとおりです:
ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,ssh-rsa

現在サポートされている鍵の形式一覧を見るには、ssh (1)-Q オプションを使います。

PubkeyAuthentication (公開鍵認証)
公開鍵認証をおこなうかどうかを指定します。このキーワードの引数は"yes"か"no"のどちらかです。デフォルトでは"yes (公開鍵認証をおこなう)"になっています。

RekeyLimit (rekey の制限)
セッション鍵が再生成される (rekey) までに許される最大のデータ量を指定します。また、鍵が再生成されるまでの最大の時間も指定できます。第1引数の値はバイト数で指定し、サフィックスとして `K' 、 `M' 、あるいは `G' を使うことができます。それぞれ、キロバイト(K)、メガバイト(M)、ギガバイト(G) を表します。デフォルトは暗号方式によりますが `1G' から `4G' までの間です。第2引数はオプションで、ここには再生成までの時間をsshd_config (5) 「時間の表現」セクションにある形式で指定できます。RekeyLimitのデフォルト値は"default none"で、これは鍵の再生成がその暗号アルゴリズムのデフォルト値で許されるデータ量だけ送信または受信したときにおこなわれることを示し、時間による再生成はおこなわないことを意味します。

RemoteForward (リモート→ローカル転送)
リモートマシン上の TCP ポートを、安全な通信路を経由してローカルマシン上から与えられた host:post に転送するよう指示します(訳注: -R オプションと同じ)。最初の引数は [bindするアドレス :] ポート であり、2 番目の引数はホスト名 :ホスト側ポート で指定します。IPv6 アドレスは、ブラケット [ ] で囲むことにより指定します。ポート転送は複数指定することができ、コマンドラインから追加指定することもできます。特権ポートを転送できるのは、そのリモートホスト上に root としてログインできるときだけです。

ポート 引数が 0 の場合、listen するポートはサーバ側で動的に割り当てられ、実行時にクライアント側にその値が報告されます。

デフォルトでは、サーバ側で listen するソケットはループバックインターフェイスにのみ bind されます。これはbindするアドレス を指定することによって上書きすることができます。空のbindするアドレス または * をアドレスとして指定すると、サーバ側のソケットはすべてのインターフェイスに対して listen するようになります。bindするアドレス にループバック以外の値が指定できるのは、GatewayPorts設定項目が許可されているときのみです (sshd_config (5) を参照してください)。

RequestTTY (TTYの要求)
セッションに対して、仮想端末 (TTY) を要求するかどうかを指定します。とりうる引数の値は"no"(TTYを要求しない)、"yes"(標準入力がTTYの場合はTTYを要求する)、"force"(つねにTTYを要求する)、あるいは"auto"(ログインセッションのときにTTYを要求する)となっています。この項目は、ssh (1) における-t および-T オプションに対応しています。

RevokedHostKeys (失効した鍵)
失効したホスト公開鍵を指定します。このファイル中に含まれる鍵はホスト認証時に拒否されます。注意: 指定したファイルが存在しない場合、あるいはそのファイルが読み込み不可能な場合は、すべてのホストに対してホスト認証が拒否されます。鍵の一覧はテキストファイルとして、1行ごとに1つずつの鍵を指定するか、あるいはssh-keygen (1) によって生成される OpenSSH 鍵失効リスト (Key Revocation List, KRL) を指定することもできます。KRLの詳細については、ssh-keygen (1) の「鍵失効リスト (Key Revocation List)」の項を参照してください。

RhostsRSAAuthentication (rhosts-RSA 認証)
RSA ホスト認証を使った rhosts ベースの認証を試みるかどうかを指定します。この引数の値は"yes"または"no"です。デフォルトの値は"no (rhosts-RSA 認証をおこなわない)"です。この設定項目はプロトコル 1 にのみ適用されます。このオプションを使うにはssh (1) を setuid root にしておくことが必要です。

RSAAuthentication (RSA 認証)
RSA 認証を使うかどうかを指定します。この引数の値は"yes"または"no"です。RSA 認証は identity ファイルが存在するときか、認証エージェントが動いているときのみ使用されます。デフォルトは"yes (RSA 認証をおこなう)"です。この設定項目はプロトコル 1 にしか適用されないので注意してください。

SendEnv (環境変数を送信)
ローカルな環境変数(environ (7) ) のうち、どれをサーバに送信すべきかを設定します。注意: 環境変数の受け渡しがサポートされているのは、サーバがこれをサポートするようになっており、なおかつそれらの環境変数を許可するよう設定されているときだけです。注意:TERM 環境変数は、プロトコルによる規定で、仮想端末を必要とする場合にはつねに送信されます。サーバ側の設定については、sshd_config (5) にあるAcceptEnvを参照してください。変数は名前によって指定されます。この名前にはワイルドカード文字を含むことができます。複数の環境変数を指定する場合は空白によって区切るか、複数のSendEnv項目を指定することができます。デフォルトでは、どの環境変数も送られないようになっています。

ワイルドカード文字の詳細についてはパターンを参照してください。

ServerAliveCountMax (サーバ生存カウント最大値)
ssh (1) がサーバからの返答を確認するまでに、サーバ生存確認メッセージ (下記参照)を何回まで送るかを指定します。この回数が指定された数値を超えると、ssh はサーバ側との接続を切断し、セッションを終了させます。重要なのは、サーバ生存確認メッセージは以下に記されているTCPKeepAliveとはまったく違うということです。サーバ生存確認メッセージは暗号化された通信路を経由して送られるので、偽装可能ではありません。これに対して、TCPKeepAliveで指定される TCP の keepalive オプションは偽装が可能です。このサーバ生存確認の機構は、クライアントまたはサーバ側が、いつ接続が切れたかを知りたいときに有用です。

このデフォルト値は、 3 です。たとえばもし、ServerAliveInterval(下記) が 15 に設定されており、ServerAliveCountMaxがデフォルトのままだったとしたら、ssh はサーバが応答しなくなった後およそ 45 秒後に接続を切断します。

ServerAliveInterval (サーバ生存確認の間隔)
一定期間サーバからデータが送られてこないときに、タイムアウトする秒数を設定します。この場合ssh (1) は暗号化された通信路を介してサーバ側に返答を要求するメッセージを送ります。デフォルトは 0 で、これはこのようなメッセージをサーバ側に送らないことを指示しています。

StreamLocalBindMask (Unixドメインソケット作成時のマスク)
ローカルまたはリモートのポート転送のさいに、Unixドメインソケットファイルを作成する時の
umask
値を指定します。この設定項目は Unixドメインソケットファイルに対してポート転送をおこなう時にのみ有効です。

デフォルトの値は 0177 であり、これは作成された Unixドメインソケットが所有者にのみ読み書き可能であることを示しています。注意: すべてのオペレーティングシステムが Unixドメインソケットのファイルモードに従うわけではありません。

StreamLocalBindUnlink (Unixドメインソケットを削除する)
ローカルまたはリモートのポート転送で、新しい Unixドメインソケットファイルを作成するさいに既存のソケットファイルを削除するかどうかを指定します。もしソケットファイルがすでに存在し、StreamLocalBindUnlinkが有効となっていない場合、ssh はその Unixドメインソケットに対してポート転送をおこなうことができません。この設定項目は Unixドメインソケットファイルに対してポート転送をおこなう時にのみ有効です。

とりうる引数は"yes"または"no"で、デフォルトは"no"になっています。

StrictHostKeyChecking (厳格なホスト鍵チェック)
この設定項目が"yes"に設定されている場合、ssh (1) は決して~/.ssh/known_hostsファイルに自動的にホスト認証鍵を追加しません。鍵が変更されているホストへの接続は拒否されます。これはトロイの木馬攻撃に対する最大の防御となりますが、/etc/ssh/ssh_known_hostsファイルをきちんと更新していなかったり、新規のホストに頻繁に接続するような状況だと邪魔になるかもしれません。このオプションを使うとユーザは手で新しいホストの鍵を追加しなければならなくなります。この設定項目が"no"に設定されている場合、ssh は新しいホスト鍵をユーザの known_hosts ファイルに自動的に追加します。この設定項目が"ask"に設定されていると、新しいホスト鍵が追加されるのは、ユーザが本当にそれを望んでいると確認できたときだけになります。ホスト鍵が変更されているホストへの接続は拒否されます。known_hosts ファイルに含まれているホスト鍵はいかなる場合でも自動的に検査されます。この設定項目がとりうる値は"yes"、"no"あるいは"ask"で、デフォルトは"ask"です。

TCPKeepAlive (TCP接続を生かしておく)
システムが相手のマシンに TCP keepalive メッセージを送るかどうかを指定します。これが送られると、接続の異常終了や相手マシンのクラッシュが正しく通知されるようになります。しかしこれを使うと、たとえ経路が一時的にダウンしていても接続が死んでいるということになってしまい、これが邪魔になる場合もあります。

デフォルトは"yes (TCP keepalive メッセージを送る)"です。そのためクライアントはネットワークがダウンするか、リモートホストが落ちると通知してきます。これはスクリプト中では重要であり、多くのユーザもこれを望んでいます。

TCP Keepalive メッセージを禁止するには、この値を"no"にする必要があります。

Tunnel (トンネリングの指定)
クライアントとサーバ間でtun (4) デバイスの転送を要求します。とりうる値は"yes"、"point-to-point"(layer 3)、"ethernet"(layer 2)あるいは"no"です。"yes"を指定するとデフォルトのトンネリング方法として"point-to-point"を使用します。デフォルトでは"no"になっています。

TunnelDevice (トンネリングするデバイス)
トンネリングに使うtun (4) デバイスをクライアント側で
ローカルtun
に、サーバ側で
リモートtun
に強制的に指定します。

この引数はローカルtun [:リモートtun ] の形である必要があります。デバイス名にはインターフェイス番号か、キーワード"any"を指定します。これを指定すると次に使用可能なデバイスが選択されることになります。リモートtun が指定されない場合、これは"any"とみなされます。この設定項目のデフォルト値は"any:any"です。

UpdateHostKeys (ホスト鍵を更新する)
ssh (1) がサーバの送信する、追加のホスト鍵の通知を受け付けるかどうかを指定します。この通知は認証が完了したあとに送られ、受けとった鍵はUserKnownHostsFileに追加されます。とりうる引数は"yes 、""no"(デフォルト) あるいは"ask"です。この項目を許可しておくと、あるサーバに対する代替のホスト鍵を学習することができるため、サーバが古い鍵を削除するときにスムーズにホスト鍵の移行をおこなうことができます。追加のホスト鍵は、この鍵で認証したホストがすでに信頼されている場合か、あるいはユーザが明示的に許可した場合にのみ受け入れられます。UpdateHostKeysの値を"ask"に設定すると、ユーザは known_hosts ファイルを修正する際には確認を求められます。現在のところ、この確認処理はControlPersistとは互換性がないため、ControlPersistが許可されている場合にはこちらの項目は禁止されます。

いまのところ、OpenSSH 6.8 あるいはそれ以降のsshd (8) のみが"hostkeys@openssh.com"プロトコル拡張をサポートしており、クライアントがサーバからすべてのホスト鍵を受けとることができるようになっています。

UsePrivilegedPort (特権ポートを使用する)
外に向けての接続をおこなうときに、特権ポートを使用するかどうかを指定します。この引数の値は"yes"または"no"で、デフォルトは"no"になっています。"yes"に設定した場合、ssh (1) は setuid root である必要があります。注意:旧式の sshd に対してRhostsRSAAuthentication認証が必要な場合は、この設定項目を"yes"にする必要があります。

User (ユーザ)
ログインするユーザ名を指定します。これは異なるマシン上で異なるユーザ名が使われている場合に便利です。これでコマンドラインからわざわざユーザ名を与えなくてもすみます。

UserKnownHostsFile (個人用 known_hosts ファイル)
ホスト鍵データベースとして使うファイルを空白で区切って指定します。デフォルトでは~/.ssh/known_hosts~/.ssh/known_hosts2になっています。

VerifyHostKeyDNS (DNSでホスト鍵を確認する)
DNS と SSHFP 資源レコードを使って、リモートホストの公開鍵を検証するかどうかを指定します。この設定項目が"yes"に設定されていると、クライアントは暗黙のうちにDNS 上の安全な指紋に一致する鍵を信頼するようになります。安全でない指紋については、この設定項目を"ask"とすることによって扱います。この設定項目が"ask"に設定されていると、一致した指紋に関する情報が表示されますが、それでもユーザはStrictHostKeyChecking設定項目に従って新しいホスト鍵を確認しなければなりません。この設定項目がとりうる値は"yes"、"no"あるいは"ask"です。デフォルトでは"no"になっています。

ssh (1) の「ホスト鍵の検証」も参照してください。

VisualHostKey (視覚的なホスト鍵)
この項目が"yes"に設定されている場合、ホスト鍵が未知であるマシンにログインしようとした時、通常のリモートホストの鍵の指紋に加えて、これをアスキーアートで表現したものが表示されます。この項目が"no"の場合は、ホスト鍵が未知であるマシンにログインしようとした時に指紋のみが表示されます。デフォルトは"no"です。

XAuthLocation (xauth の位置)
xauth (1) プログラムのフルパス名を指定します。デフォルトは/usr/X11R6/bin/xauthです。

パターン

パターンは、0 個以上の非空白文字か、 `*' (0 個または以上の任意の文字に一致する)あるいは `?' (任意の 1 文字だけに一致する)によって構成されます。たとえば、".co.uk"ドメインの任意のホストに適用される宣言を指定したい場合には、以下のようなパターンが使えます:

Host *.co.uk

以下のパターンはアドレス範囲が 192.168.0.[0-9] にある任意のホストに一致します:

Host 192.168.0.?

パターン列はカンマ (,) で区切られたパターンの列をさします。パターン列中の各パターンは、先頭に感嘆符

`!'
をつけることによって否定を表すことができます。たとえば、ある組織内の"dialup"プール以外から接続してきた場合に鍵の使用を許可する場合、(authorized_keys ファイルで) 以下のようなエントリを使うことができます:

from=!*.dialup.example.com,*.example.com

関連ファイル

~/.ssh/config
ユーザごとの個人用設定ファイルです。ファイル形式は上で説明されています。このファイルは SSH クライアントによって使われます。このファイルは潜在的に悪用される危険性があるため、パーミッションは厳しくしておくのがいいでしょう。所有者のみが読み書き可能で、他からはアクセスできないようにしておくべきです。

/etc/ssh/ssh_config
システム全体にわたる設定ファイルです。このファイルはユーザの設定ファイルでは指定されなかった値を提供し、また設定ファイルを持たないユーザのためのデフォルトにもなります。このファイルは誰にでも読み込み可能でなければいけません。

関連項目

ssh (1)

作者

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 の貢献によるものです。