スポンサーリンク

SSH_CONFIG(5) FreeBSD ファイルフォーマットマニュアル SSH_CONFIG(5)

名称

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

書式

       $HOME/.ssh/config

/etc/ssh/ssh_config

解説

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

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

2. ユーザごとの設定ファイル ($HOME/.ssh/config)
3. システム全体にわたる (system-wide) 設定ファイル (/etc/ssh/ssh_config)

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

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

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

空行、および ‘#’ で始まる行は、コメントとみなされます。

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

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

Host (ホスト)
これ以後の (次の Host キーワードが現れるまでの) 設定項目を、ここ で指定されたパターンのどれかにマッチするホストだけに制限します。 パターン中では ‘*’ と ‘?’ がワイルドカードとして使えます。単独の ‘*’ は、すべてのホストに対するデフォルトとして使えます。ここでい うホストとは、コマンドライン引数で与えられた ホスト名そのもののこ とです (つまり、ホスト名はマッチングの前に正規化されたりしませ ん)。

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

作者

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

日本語訳

新山 祐介 (yusuke @ cs . nyu . edu) 2003/4/17 (for 3.6.1p1)

当マニュアルページは氏のご好意により FreeBSD 日本語マニュアルに収録させて いただいています。翻訳についてのご意見、ご指摘がありましたら新山氏 (yusuke at cs . nyu . edu)、および FreeBSD jpman プロジェクト ⟨man-jp@jp.FreeBSD.org⟩ までお送りください。

関連項目

ssh(1)

FreeBSD 10.0 September 25, 1999 FreeBSD 10.0

スポンサーリンク