総合手引 | セクション 5 | English | オプション |
$HOME/.ssh/config
/etc/ssh/ssh_config | |
各設定項目にはそれぞれ最初に見つかったものが使われます。 設定ファイルはいくつかのセクションに分かれており、これらは "Host" キーワードにより区切られています。あるセクションの設定が 適用されるのは、コマンドラインから与えられたホスト名が、 このキーワードで指定されているパターンのどれかにマッチするときだけです。
各設定項目で最初に見つかった値が使われるので、ホストに特化した 宣言をファイルの先頭近くに置くようにし、一般的なものを後に置くのが よいでしょう。
設定ファイルは以下のような形式になっています:
空行、および ‘#’ で始まる行は、コメントとみなされます。
それ以外の場合、この行は
"キーワード 引数"
という形式になっています。
キーワードと引数は、空白またはひとつの
‘=’
(間に空白を含んでいてもよい) によって区切られます。
後者の形式は、
ssh,
scp
および
sftp
などで
とりうるキーワードとその意味は以下のとおりです (キーワードは大文字小文字どちらでもかまいませんが、 その引数は大文字小文字が区別されることに注意してください) :
Host (ホスト) | |
これ以後の (次の Host キーワードが現れるまでの) 設定項目を、ここで 指定されたパターンのどれかにマッチするホストだけに 制限します。パターン中では ‘amp;*’ と ‘amp;?’ がワイルドカードとして使えます。単独の ‘amp;*’ は、すべてのホストに対するデフォルトとして使えます。 ここでいうホストとは、コマンドライン引数で与えられた ホスト名 そのもののことです (つまり、ホスト名はマッチングの前に正規化されたりしません)。 | |
AFSTokenPassing (AFS トークンパス) | |
リモートホストに AFS トークンを渡すかどうかを指定します。 この引数がとりうる値は "yes" あるいは "no" のどちらかになります。 このオプションはプロトコル バージョン 1 でのみ有効です。 | |
BatchMode (バッチ処理モード) | |
これが "yes" に設定されていると、パスフレーズおよびパスワードの 入力を求めないようになります。このオプションはスクリプトなどにおける バッチ処理中で、パスワードを打ち込むユーザがいない場合に便利です。 引数の値は "yes" あるいは "no" です。 デフォルトは "no (パスワードあるいはパスフレーズの入力を求める)" です。 | |
BindAddress (bind するアドレス) | |
複数のインタフェースあるいはエイリアスされたアドレスを もっているマシンで、通信に使うインタフェースを指定します。 このオプションは UsePrivilegedPort 項目が "yes" になってるときは機能しないので注意してください。 | |
ChallengeResponseAuthentication (チャレンジ・レスポンス認証) | |
チャレンジ・レスポンス認証をおこなうかどうかを指定します。 この引数がとりうる値は "yes" あるいは "no" です。デフォルトでは "yes (チャレンジ・レスポンス認証をおこなう)" になっています。 | |
CheckHostIP (ホスト IP の検査) | |
このオプションが "yes" に設定されていると、ssh は接続先ホスト名の IP アドレスが known_hosts に書かれている同一ホスト名 IP アドレスと同じかどうか 検査するようになります。 これによって、DNS 詐称によりホスト鍵が変えられたことを 検出できます。このオプションが "no" に設定されている場合は、この検査はおこなわれません。 デフォルトでは、これは "no (ホスト IP アドレスの検査をおこなわない)" になっています。 | |
Cipher (暗号化アルゴリズム) | |
プロトコル バージョン 1 のセッションで使う暗号化の アルゴリズムを指定します。現在のところ "blowfish", "3des" および "des" がサポートされており、デフォルトは "3des" です。 des は、 3des 暗号をサポートしていない、もはや古くなったプロトコル 1 の実装と 相互運用するためにのみサポートされています。 この暗号は弱いため、使用はおすすめしません。 | |
Ciphers (複数の暗号化アルゴリズム) | |
プロトコル バージョン 2 で使う暗号化アルゴリズムの
優先順位を指定します。複数の暗号化アルゴリズムを
コンマで区切って指定します。
デフォルトは
``aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour, aes192-cbc,aes256-cbc''の順になっています。 | |
ClearAllForwardings (すべてのポート転送をキャンセル) | |
設定ファイルあるいはコマンドラインで指定された、 ローカル、リモートおよびダイナミックなポート転送をすべて キャンセルします。このオプションは設定ファイルで指定されている ポート転送を ssh のコマンドラインで打ち消すためにあり、 scp(1) や sftp(1) で自動的に使われます。この引数の値は "yes" あるいは "no" です。デフォルトでは "no" になっています。 | |
Compression (圧縮) | |
データ圧縮をおこなうかどうかを指定します。 引数の値は "yes" あるいは "no" です。 デフォルトでは "no (圧縮をおこなわない)" になっています。 | |
CompressionLevel (圧縮レベル) | |
圧縮をおこなうさいの圧縮レベルを指定します。 この引数がとる値は 整数の 1 (速い) から 9 (遅い、高圧縮率) までです。 デフォルトの値は 6 で、ほとんどのアプリケーションにはこれで充分です。 この値の意味は gzip(1) と同じです。 このオプションはプロトコル バージョン 1 のみに適用されることに 注意してください。 | |
ConnectionAttempts (接続試行回数) | |
接続を試みる回数 ( 1 秒に 1 回) を指定します。これを越えると ssh は終了してしまいます。この値は整数で なければなりません。これは、ときどき接続に失敗する環境での スクリプトなどに便利です。 デフォルトは 1 回です。 | |
DynamicForward (動的なポート転送) | |
暗号化された通信路を経由して、ローカルホスト側の TCP/IP ポートを 転送するよう指定します。このとき、どのリモートホストから 接続するかを決定するためにアプリケーションレベルのプロトコルが 使われます。このオプションの引数はポート番号である必要があります。 今のところ SOCKS4 プロトコルが使われており、 ssh は SOCKS4 サーバのようにふるまいます。 複数のポート転送も指定でき、コマンドラインからこれを追加することも できます。特権ポートを転送できるのは root だけです。 | |
EscapeChar (エスケープ文字) | |
エスケープ文字を設定します (デフォルトは ‘~’ )。エスケープ文字はコマンドラインからも指定できます。 この引数には 1 つの文字か、 ‘^’ に 1 文字を付けたもの、あるいはエスケープ文字の使用をすべて禁止するなら "none" を指定します (これはその接続を、バイナリ データに対して透過にすることになります)。 | |
ForwardAgent (エージェント転送) | |
認証エージェントへの接続を、(それが存在する時は) リモートマシン上に
転送するかどうかを指定します。この引数の値は
"yes"
あるいは
"no"
でなければならず、デフォルトは
"no (エージェント転送をおこなわない)"
です。
認証エージェントの転送には注意が必要です。 リモートホスト上で (エージェントの UNIX ドメインソケットに対する) ファイルアクセス権限を無視できてしまうユーザがいる場合は、 転送された接続を介してローカル側の 認証エージェントにアクセスできてしまうことになります。 攻撃側は認証エージェントから鍵そのものを盗むことはできませんが、 認証エージェントがもっている鍵に認証をおこなわせることはできます。 | |
ForwardX11 (X11 転送) | |
X11 接続を自動的に安全な通信路へリダイレクトし、
DISPLAY
を設定するかどうかを指定します。この引数の値は
"yes"
あるいは
"no"
でなければならず、デフォルトは
"no (X11 接続を転送しない)"
です。
X11 の転送には注意が必要です。 リモートホスト上で (そのユーザの X 認証のための) ファイルアクセス権限を 無視できてしまうユーザがいる場合は、転送された接続を介してローカル側の X11 ディスプレイにアクセスできてしまうことになります。 すると攻撃側はキーストロークを盗み見るなどの行為が可能になってしまうかも しれません。 | |
GatewayPorts (ポート転送の中継) | |
ローカルからリモートへ転送されている (リモート→ローカルのポート転送) ポートに、他ホストからの接続を許すかどうかを指定します。 デフォルトでは、 ssh は転送されたローカルポートをループバックアドレス (127.0.0.1) に bind します。このため他の (訳注: サーバ以外の) ホストが 転送されたポートに接続することはできません。 GatewayPorts を使うと、 ssh は転送されたローカルポートをワイルドカードアドレス (0.0.0.0) に bind するようになります。これは他のホストもその転送されたポートに 接続できるということです。 この引数の値は "yes" または "no" で、デフォルトは "no (転送されているポートに他ホストからの接続を許可しない)" に設定されています。 | |
GlobalKnownHostsFile (大域的 known_host ファイル) | |
そのホスト全体で /etc/ssh/ssh_known_hosts のかわりに使用するホスト鍵データベースファイルを指定します。 | |
HostbasedAuthentication (ホストベース認証) | |
ホスト間認証を使った rhosts ベースの認証をおこなうかどうかを指定します。 とりうる引数の値は "yes" または "no" で、デフォルトは "no (ホストベース認証を試みない)" になっています。 このオプションはプロトコル バージョン 2 のみに適用され、 RhostsRSAAuthentication と似ています。 | |
HostKeyAlgorithms (ホスト間認証のアルゴリズム) | |
プロトコル バージョン 2 において、ホスト間認証で使われる アルゴリズムを指定します。クライアントはここで指定された 優先順位のアルゴリズムを使って認証を試みます。 このオプションのデフォルトは "ssh-rsa,ssh-dss" です。 | |
HostKeyAlias (ホスト鍵のエイリアス) | |
ホスト鍵データベースからホスト鍵を検索するとき、あるいは データベースにホスト鍵を保存するときに、実際のホスト名のかわりに 使われる名前を指定します。 このオプションは ssh 接続をトンネリングしているときや、 単一のホスト上で複数の sshd サーバを動かしているときなどに 便利です。 | |
HostName (実際のホスト名) | |
実際にログインするホスト名を指定します。デフォルトでは ssh_config はコマンドラインで与えられたホスト名に接続しますが、 これを使うと、ホストのニックネームや省略形を使用することができます。 数字の IP アドレスでもかまいません (コマンドライン、 HostName キーワードの両方とも)。 | |
IdentityFile (identity ファイル) | |
ユーザの RSA または DSA 認証用 identity (秘密鍵) を 読むファイルを指定します (デフォルトは、プロトコル バージョン 1 の場合 ユーザのホームディレクトリにある $HOME/.ssh/identity ファイルが、プロトコル バージョン 2 の場合は $HOME/.ssh/id_rsa および $HOME/.ssh/id_dsa が使われます)。 これに加えて、認証エージェントによって現れる identity も使われます。 ユーザのホームディレクトリを表すのにチルダ表記を使うこともできます。 設定ファイルでは複数の identity を指定することもでき、 この場合すべての identity が順に試されます。 | |
KeepAlive (接続を生かしておく) | |
システムが相手のマシンに TCP keepalive メッセージを送るかどうかを
指定します。これが送られると、接続の異常終了や相手マシンの
クラッシュが正しく通知されるようになります。
しかしこれを使うと、たとえ経路が一時的にダウンしていても
接続が死んでいるということになってしまい、これが邪魔になる場合もあります。
デフォルトは "yes (keepalive を送る)" です。そのため クライアントはネットワークがダウンするか、 リモートホストが落ちると通知してきます。 これはスクリプト中では重要であり、多くのユーザもこれを望んでいます。 Keepalive を禁止するには、この値を "no" にする必要があります。 | |
KerberosAuthentication (Kerberos 認証) | |
Kerberos 認証をおこなうかどうか指定します。この引数の値は "yes" あるいは "no" です。 | |
KerberosTgtPassing (Kerberos TGT パス) | |
Kerberos TGT がサーバを転送するかどうかを指定します。これは その Kerberos サーバが実際に AFS kaserver であるときのみ 機能します。この引数の値は "yes" あるいは "no" です。 | |
LocalForward (ローカル→リモート転送) | |
ローカルマシンの TCP/IP ポートを、安全な通信路を経由して リモートマシン上から与えられた host:port に転送するよう指示します (訳注: -L オプションと同じ)。 最初の引数は転送するローカルホストのポートを、2番目の引数には転送先を host:port の形で指定します。 IPv6 アドレスはこれとは別の host/port という形式で指定します。ポート転送は複数指定することができ、 コマンドラインから追加指定することもできます。 特権ポートを転送できるのはスーパユーザだけです。 | |
LogLevel (ログレベル) | |
ssh_config が出力するログの冗長性のレベルを指定します。 とりうる値は次のとおりです: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 および DEBUG3。 デフォルトでは INFO になっています。DEBUG と DEBUG1 は等価です。 DEBUG2, DEBUG3 はそれぞれさらに冗長なログになります。 | |
MACs (メッセージ認証コード) | |
使用する MAC (メッセージ認証コード) アルゴリズムの優先順位を指定します。 MAC アルゴリズムはプロトコル バージョン 2 で使われる、 データの改竄を防ぐ機構 (data integrity protection) です。 複数のアルゴリズムをコンマで区切って指定します。 デフォルトは "hmac-md5,hmac-sha1,hmac-ripemd160,hmac-sha1-96,hmac-md5-96" の順になっています。 | |
NoHostAuthenticationForLocalhost (localhostでのホスト認証を抑制) | |
このオプションはホームディレクトリがマシン間で共有されているときに 使います。このような状況ではそれぞれ別々のマシンで localhost のさす ホストが異なっているため、ユーザはホスト鍵が変わったという警告を 受けてしまいます (訳注: 別々のホスト鍵をもつマシンで同一の localhost ホスト鍵が共有されているため)。このオプションを使うと、相手が localhost のときにはホスト間認証を抑制することができます。 この引数がとりうる値は "yes" あるいは "no" です。 デフォルトでは、yes (相手が localhost でも鍵をチェックする) になっています。 | |
NumberOfPasswordPrompts (パスワード試行回数) | |
パスワードを最高何回まで訊くかを指定します。 この回数を超えると認証は失敗します。 このキーワードには整数を指定する必要があります。 デフォルト値は 3 です。 | |
PasswordAuthentication (パスワード認証) | |
パスワード認証をおこなうかどうかを指定します。この引数の値は "yes" または "no" です。デフォルトでは "yes (パスワード認証をおこなう)" になっています。 | |
Port (ポート番号) | |
リモートホストに接続するときのポート番号を指定します。 デフォルトは 22 です。 | |
PreferredAuthentications (認証の優先順位) | |
プロトコル 2 で試される認証の優先順位を指定します。 これによって、クライアントは特定の認証 ( keyboard-interactive など) をそれ以外の認証 ( password など) よりも優先して選ぶことができます。 このオプションのデフォルトは "hostbased,publickey,keyboard-interactive,password" の順になっています。 | |
Protocol (プロトコル) | |
ssh がサポートすべきプロトコルのバージョンの優先順位を指定します。 とりうる値は "1" と "2" です。 複数のバージョンを 指定するときはコンマで区切ってください。 デフォルト値は "2,1" です。これは ssh がまず始めにバージョン 2 がサポートされているかどうかを調べ、 サーバがそれをサポートしていなかった場合に バージョン 1 を使用することを指示しています (訳注: もしサーバ側がバージョン 2 の認証をサポートしていた場合、 バージョン 2 での認証に失敗すると ssh は そこで終了します。バージョン 1 の認証は *おこなわない* ため、 注意してください)。 | |
ProxyCommand (プロキシ コマンド) | |
サーバに接続するのに使用するコマンドを指定します。
コマンド文字列はこのキーワード以後、行末まで書くことができます。
コマンド文字列は
/bin/sh
によって実行されます。
コマンド文字列では、
‘%h’
は接続するホスト名に置換され、
‘%p’
はポート番号に置換されます。
コマンドは基本的に何でもよいのですが、標準入力から読み込み、
標準出力に書き込むようなものである必要があります。
これは最終的にサーバマシン上で動いている
sshd(8)
に接続するか、どこか別の場所で
sshd -i
を起動させるようにします。
ホスト鍵の管理は接続されているホストの
HostName を使っておこなわれます (デフォルトでは、これはユーザが
タイプした名前になります)。
このコマンドを
"none"
に設定すると、このオプションは完全に使用禁止になります。
プロキシコマンドを使うと、
CheckHostIP (ホスト IP アドレスの検査)
は使用できませんので注意してください。
| |
PubkeyAuthentication (公開鍵認証) | |
公開鍵認証をおこなうかどうかを指定します。 このキーワードの引数は "yes" か "no" のどちらかです。 デフォルトでは "yes (公開鍵認証をおこなう)" になっています。 このオプションはプロトコル バージョン 2 のみに適用されます。 | |
RemoteForward (リモート→ローカル転送) | |
リモートマシン上の TCP/IP ポートを、安全な通信路を経由して ローカルマシン上から与えられた host:post に転送するよう指示します (訳注: -R オプションと同じ)。 最初の引数は転送するリモートホストのポートを、 2番目の引数には転送先を host:port の形で指定します。 IPv6 アドレスはこれとは別の host/port という形式で指定します。ポート転送は複数指定することができ、 コマンドラインから追加指定することもできます。 特権ポートを転送できるのはスーパユーザだけです。 | |
RhostsAuthentication (rhosts 認証) | |
rhosts ベースの認証をおこなうかどうかを指定します。この宣言は クライアント側にのみ影響し、セキュリティ的にまったくなんの 効果もないことに注意してください。 ほとんどのサーバでは RhostsAuthentication は 安全でないという理由で許可されていません ( RhostsRSAAuthentication を参照のこと)。 この引数の値は "yes" または "no" です。 デフォルトでは "no (rhosts 認証をおこなわない)" になっています。 このオプションはプロトコル バージョン 1 のみに適用され、 この機能を使うためには ssh が setuid root されていて UsePrivilegedPort が "yes" に設定されている必要があります。 | |
RhostsRSAAuthentication (rhosts-RSA 認証) | |
RSA ホスト認証を使った rhosts ベースの認証を試みるかどうかを 指定します。 この引数の値は "yes" または "no" です。 デフォルトの値は "no (rhosts-RSA 認証をおこなわない)" です。 このオプションはプロトコル バージョン 1 のみに適用され、 これを使うには ssh を setuid root にしておくことが必要です。 | |
RSAAuthentication (RSA 認証) | |
RSA 認証を使うかどうかを指定します。 この引数の値は "yes" または "no" です。RSA 認証は identity ファイルが存在するときか、 認証エージェントが動いているときのみ使用されます。 デフォルトは "yes (RSA 認証をおこなう)" です。 このオプションは プロトコル バージョン 1 にしか適用されないので注意してください。 | |
SmartcardDevice (スマートカード・デバイス) | |
使用するスマートカードのデバイスを指定します。 この引数には ssh がスマートカードと通信するときに使うデバイスを指定します。 スマートカードはユーザの RSA 秘密鍵を格納するのに使われます。 デフォルトではデバイスは何も指定されておらず、スマートカードの使用は 有効になっていません。 | |
StrictHostKeyChecking (厳格なホスト鍵チェック) | |
このオプションが "yes" に設定されている場合、 ssh は決して $HOME/.ssh/known_hosts ファイルに自動的にホスト認証鍵を追加しません。 鍵が変更されているホストへの接続は拒否されます。 これはトロイの木馬攻撃に対する最大の防御となりますが、 /etc/ssh/ssh_known_hosts ファイルをきちんと更新していなかったり、新規のホストに頻繁に 接続するような状況だと邪魔になるかもしれません。 このオプションを使うとユーザは手で新しいホストの鍵を 追加しなければならなくなります。 このオプションが "no" に設定されている場合、 ssh は新しいホスト鍵をユーザの known_hosts ファイルに 自動的に追加します。 このオプションが "ask" に設定されていると、 新しいホスト鍵が追加されるのは、ユーザが 本当にそれを望んでいると確認できたときだけになります。 ホスト鍵が変更されているホストへの接続は拒否されます。 known_hosts ファイルに含まれているホスト鍵は いかなる場合でも自動的に検査されます。 このオプションがとりうる値は "yes", "no" あるいは "ask" で、デフォルトは "ask" です。 | |
UsePrivilegedPort (特権ポートを使用する) | |
外に向けての接続をおこなうときに、 特権ポートを使用するかどうかを指定します。この引数の値は "yes" または "no" で、デフォルトは "no" になっています。 "yes" に設定した場合、 ssh は setuid root である必要があります。 注意: 旧式の sshd に対して RhostsAuthentication あるいは RhostsRSAAuthentication の認証が必要な場合は、このオプションを "yes" にする必要があります。 | |
User (ユーザ) | |
ログインするユーザ名を指定します。これは異なるマシン上で 異なるユーザ名が使われている場合に便利です。 これでコマンドラインからわざわざユーザ名を与えなくてもすみます。 | |
UserKnownHostsFile (個人用 known_hosts ファイル) | |
ホスト鍵データベースとして $HOME/.ssh/known_hosts 以外のファイルを使うときに指定します。 | |
VersionAddendum (バージョンに付加するもの) | |
OS もしくはサイトに特化した修正を示すために、通常のバージョン文字列に 付け加える文字列を指定します。 デフォルトは "FreeBSD-20030924" です。 | |
XAuthLocation (xauth の位置) | |
xauth(1) プログラムのフルパス名を指定します。デフォルトは /usr/X11R6/bin/xauth です。 | |
$HOME/.ssh/config | |
ユーザごとの個人用設定ファイルです。 ファイル形式は上で説明されています。 このファイルは ssh クライアントによって使われます。 このファイルはふつう特に秘密の情報は含んでいませんが、 しかし望ましいパーミッションとしては、そのユーザからは 読み/書き可能で、他人からはアクセス不可能にしておくのがよいでしょう。 | |
/etc/ssh/ssh_config | |
システム全体にわたる設定ファイルです。このファイルはユーザの設定 ファイルでは指定されなかった値を提供し、また設定ファイルを 持たないユーザのためのデフォルトにもなります。このファイルは 誰にでも読み込み可能でなければいけません。 | |
当マニュアルページは氏のご好意により FreeBSD 日本語マニュアルに収録させていただいています。 翻訳についてのご意見、ご指摘がありましたら新山氏 (yusuke at cs . nyu . edu)、および FreeBSD jpman プロジェクト <man-jp@jp.FreeBSD.org> までお送りください。
SSH_CONFIG (5) | September 25, 1999 |
総合手引 | セクション 5 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | If you have a problem and you think awk(1) is the solution, then you have two problems. | ” |
— David Tilbrook |