ssh(1) FreeBSD 一般コマンドマニュアル

ssh

前のページ 上に戻る 次のページ

ssh



     ssh [-afgknqtvxACNPTX246] [-c 暗号化オプション] [-e エスケープ文字]
         [-i identityファイル] [-l ログイン名] [-o オプション] [-p ポート] [-L
         ポート:ホスト:ホスト側ポート] [-R ポート:ホスト:ホスト側ポート] [ホス
         ト名 | ユーザ@ホスト名] [コマンド]


解説

     ssh (Secure Shell、セキュア シェル) はリモートマシンにログインしたり、リ
     モートマシン上でコマンドを実行するためのプログラムです。これは rlogin と
     rsh を置き換えるためのもので、安全でないネットワーク上にある、2つの信頼さ
     れていないホスト間で、暗号化された安全な通信を提供します。X11 の接続や任
     意の TCP/IP ポートなども安全な通信路を通して転送できます。

     ssh は指定された hostname に接続し、ログインします。ユーザはリモートマシ
     ンに対して、自分自身であることを証明しなければいけません。これにはプロト
     コルのバージョンに応じたいくつかの方法のうちのひとつを使います:

   SSH B>プB>ロB>トB>コB>ル B>バB>ーB>ジB>ョB>ン 1

     最初に、ユーザがリモートマシン上の /etc/hosts.equiv あるいは
     /etc/ssh/shosts.equiv に記されているマシンからログインしてきて、さらにそ
     のユーザの名前が両方のホストで同じならば、そのユーザはすぐにログインが許
     可されます。つぎに、 .rhosts.shosts がリモートホスト上のそのユーザの
     ホームディレクトリに存在していて、そこにクライアントホスト名とそのホスト
     上におけるユーザ名が記されている行が存在すれば、そのユーザはログインが許
     可されます。この形の認証はふつう、これのみではサーバから許可されません。
     安全ではないからです。

     2番目の (原始的な) 認証方法は rhosts または hosts.equiv を RSA ベースのホ
     スト認証と組み合わせて使うことです。これはもしログインが $HOME/.rhosts,
     $HOME/.shosts, /etc/hosts.equiv, あるいは /etc/ssh/shosts.equiv で許可さ
     れていて、さらにサーバ側がクライアントのホスト鍵 ( 関連ファイルセクション
     の /etc/ssh/ssh_known_hosts$HOME/.ssh/known_hosts の項を参照) を確認
     できる場合、そしてその場合のみログインが許可されます。この認証方法を使う
     と IP 詐称、 DNS 詐称 および 経路詐称 によるセキュリティーホールをふさぐ
     ことができます。 [管理者の方へ: /etc/hosts.equiv$HOME/.rhosts 、そし
     て一般的な rlogin/rsh プロトコルは本質的に危険であり、セキュリティを考え
     るなら禁止しなくてはいけません]

     3つめの認証方法として、 ssh は RSA ベースの認証をサポートしています。この
     やりかたは公開鍵暗号化技術に基づいています: 暗号システムのなかには、暗号
     化/復号化をそれぞれ別の鍵をつかって行うことができ、さらに復号化用の鍵か
     ら暗号化用の鍵が推測することはできないものがあります。RSA はこのような暗
     号システムのひとつで、以下のようなアイデアで認証を行います。まず各ユーザ
     は、認証のための「秘密鍵」「公開鍵」とよばれる鍵の対をつくります。サーバ
     は公開鍵を知っていますが、秘密鍵のほうはユーザだけが知っているものとしま
     す。 $HOME/.ssh/authorized_keys ファイルには、ログインが許可されている公
     開鍵の一覧が書かれています。ユーザがログインするさい、 ssh プログラムは、
     そのユーザがどの鍵をつかって認証したがっているかをサーバに伝えます。サー
     バはこの鍵が許されるものであるかどうかをチェックし、もし許されているなら
     ば、ユーザ (実際にはユーザのために走っている ssh プログラム) に「チャレン
     ジ(挑戦)」と呼ばれるものを送ります。これはサーバ側で生成された でたらめな
     ーザはパスワードなしでログインすることができます。 RSA 認証は rhosts 認証
     よりもずっと安全です。

     RSA 認証を使う際にいちばん便利なのは「認証エージェント」と呼ばれるものを
     使うことかもしれません。詳しくは ssh-agent(1) のマニュアルページを見てく
     ださい。

     もし他の認証方法が失敗した場合、 ssh はユーザにパスワードを要求します。こ
     のパスワードはチェックのためリモートホストに送られますが、すべての通信は
     暗号化されているため、ネットワークを盗聴している何物かによってパスワード
     が見られてしまうようなことはありません。

   SSH B>プB>ロB>トB>コB>ル B>バB>ーB>ジB>ョB>ン 2

     ユーザがバージョン 2 のプロトコルで接続したときには、別の認証方法が使える
     ようになります: まず、クライアントは公開鍵の方法で認証しようとこころみま
     す。これが失敗するとパスワード認証が使われます。

     公開鍵による方法は前節に書かれている RSA 認証と似ていますが、特許のある
     RSA アルゴリズムの代わりに DSA アルゴリズムが使われる点が違っています。ク
     ライアントは $HOME/.ssh/id_dsa にある自分の DSA 秘密鍵をつかってセッショ
     ン識別子と呼ばれるものに署名し、この結果をサーバに送ります。サーバはこれ
     に対応する公開鍵が $HOME/.ssh/authorized_keys2 ファイルに存在するかどうか
     チェックし、もし両方の鍵が存在してその署名が正しければアクセスを許可しま
     す。セッション識別子は共有 Diffie-Hellman 値によって与えられ、この値はク
     ライアントとサーバのみが知ることができます。

     公開鍵認証が失敗するか、それが使えなかった場合、リモートホストにはそのユ
     ーザであることを証明するパスワードが送られます。このプロトコル 2 の実装は
     まだ Kerberos や OPIE 認証をサポートしていません。

     プロトコル 2 は信頼性 (通信は 3DES, Blowfish, CAST128 または Arcfour に
     よって暗号化されます) や、データが途中で改竄されることを防ぐための追加の
     機構 (hmac-sha1, hmac-md5) を提供しています。プロトコル 1 では接続の清潔
     さを保証する強力なメカニズムは存在しないことに注意してください。

   B>ロB>グB>イB>ンB>セB>ッB>シB>ョB>ン B>と B>リB>モB>ーB>トB>実B>行

     ユーザの同一性が確認されると、サーバは与えられたコマンドを実行するか、そ
     のマシンにログインさせユーザに標準のリモートマシンでのシェル環境を与えま
     す。リモートコマンドあるいはシェルにおけるすべての通信は自動的に暗号化さ
     れます。

     仮想端末が割り当てられる場合 (通常のログイン時)、ユーザは ~. という文字を
     入力することによって接続を切ることができ、 ~^Z によって ssh をサスペンド
     できます。転送されている接続の一覧は ~# によって見ることができます。X11
     あるいは TCP/IP 接続が終了するのを待つためにセッションがブロックされてい
     るときは、 ~& を入力することによって ssh をバックグラウンド化することがで
     きます
      (ユーザのシェルがまだ生きているときにこれをやってはいけません、シェルが
     止まってしまいます)。使用可能なエスケープ文字の一覧は、 ~?.  で見ることが
     できます。

   X11 B>と TCP B>のB>転B>送

     ユーザが X11 を使っている (環境変数 DISPLAY が設定されている) 場合には、
     X11 ディスプレイへの接続をリモート側に転送するようにできます。これは、
     シェル (あるいはコマンド) から起動された X11 プログラムはどれも暗号化され
     た通信路を通って、本当の X サーバへの接続はローカルマシン上からなされるよ
     うになるのです。ユーザは DISPLAY を手動で設定すべきではありません。 X11
     接続の転送はセキュリティを弱めるためデフォルトでは禁止されていますが、コ
     マンドラインあるいは設定ファイルによって有効にできます。

     ssh によって設定された DISPLAY の値はサーバマシン上を指すようになっていま
     すが、ディスプレイ番号は 0 より大きい値になっているでしょう。これは正常な
     状態です。 ssh は暗号化された通信路を介して接続を転送するため、サーバマシ
     ン上に ``プロキシーの'' X サーバをつくるのでこうなるのです。

     また、 ssh は自動的にサーバマシン上で Xauthority の情報を用意します。この
     目的のため、 ssh はランダムな認証クッキーを生成し、サーバ側の Xauthority
     に格納し、接続が転送されるときはすべてこのクッキーを持たせるようにしま
     す。そして接続が開かれるときに、これが本物のクッキーと置き換わるようにす
     るのです。本物の認証クッキーがサーバ側に送られることは決してありません (
     し、それに暗号化されないままでクッキーが送られるようなこともありません)。

     ユーザが認証エージェントを使っている場合、そのエージェントへの接続はそれ
     がコマンドラインあるいは設定ファイルで禁止されていない限り、自動的にリモ
     ート側に転送されます。

     安全な通信路をつかった任意の TCP/IP 接続への転送は、コマンドラインあるい
     は設定ファイルで指定します。TCP/IP 転送の応用として、ひとつは電子預金への
     安全な接続が考えられます。ほかにもファイヤーウォールを抜けるなどの使いみ
     ちがあるでしょう。

   B>サB>ーB>バB>認B>証

     ssh はこれまでに使った鍵すべてが入っているデータベースを自動的に保持し、
     チェックします。これらのうち、RSA ホスト鍵はユーザのホームディレクトリに
     ある $HOME/.ssh/known_hosts に格納され、 DSA ホスト鍵は
     $HOME/.ssh/known_hosts2 に格納されます。加えて、 /etc/ssh/ssh_known_hosts
     および /etc/ssh/ssh_known_hosts2 が既知のホストとして自動的にチェックされ
     ます。新しいホストはユーザ側のファイルに自動的に追加されていきます。も
     し、あるホストの鍵が変わっていた場合、 ssh は警告を発してパスワード認証を
     禁止します。これはトロイの木馬がユーザのパスワードを盗むのを防ぐためで
     す。この仕組みのもうひとつの目的は、どこか他の場所で man-in-the-middle 攻
     撃が行われ、暗号化がたくみにかわされてしまうのを防ぐことです。
     StrictHostKeyChecking オプション (下記参照) はホスト鍵が知られていなかっ
     たり、それが変更されていた場合のログインを防ぐために使われます。


オプション

     -a      認証エージェントの接続を転送することを禁止します。

     -A      認証エージェントの接続を転送することを許可します。これは設定ファ
             イルによってホストごとに指定することも可能です。
             ドでサポートし、Arcfour もサポートします。

     -e ch|^ch|none
             仮想端末を使うセッションにおけるエスケープ文字を指定します (デ
             フォルトは `~' )。エスケープ文字は行頭に来たときのみ認識されま
             す。エスケープ文字のあとにドット ( (`.') ) がくると接続が閉じら
             れ、control-Z がくると接続はサスペンドされます。そのエスケープ文
             字自身がきたときには、その文字が 1回だけ送られます。エスケープ文
             字を ``none'' に指定するとあらゆるエスケープ機能が禁止され、セッ
             ションは完全に透過になります。

     -f      ssh がコマンドを実行する直前に、バックグラウンドに移行するよう指
             示します。これは ssh にパスワードあるいはパスフレーズを入力する必
             要はあるものの、そのコマンド自体はバックグラウンドで実行させたい
             ときに有用です。これは -n オプションも含んでいます。リモートサイ
             トで X11 プログラムを起動させる方法では、 ssh -f host xterm など
             とやるのがおすすめです。

     -g      リモートホストが転送されたローカルなポートに接続することを許可し
             ます。

     -i identityファイル
             RSA 認証のさい、 identity (秘密鍵) を読むファイルを指定します。デ
             フォルトはユーザのホームディレクトリにある $HOME/.ssh/identity に
             なっています。identity ファイルは設定ファイルによって、ホストごと
             に指定することもできます。複数の -i オプションを指定することも可
             能です。 (設定ファイルで複数の鍵を指定することもできます。)

     -k      Kerberos チケットおよび AFS トークンの転送を禁止します。これは設
             定ファイルによって、ホストごとに指定することもできます。

     -l ログイン名
             リモートマシン上でログインするユーザ名を指定します。これは設定
             ファイルによって、ホストごとに指定することもできます。

     -n      標準入力を /dev/null からリダイレクトします (つまり標準入力からの
             読み込みを禁止します)。 ssh がバックグラウンドで走るときには、こ
             のオプションを指定しなくてはいけません。よくある手としては、リモ
             ートマシン上で X11 のプログラムを走らせるときにこれを使うことで
             す。たとえば、 ssh -n shadows.cs.hut.fi emacs & で emacs を立ち上
             げると、X11 接続は暗号化された経路を介して自動的に転送されます。
             ssh プログラムはこの後バックグラウンドに移行するでしょう。 (これ
             は ssh がパスワードあるいはパスフレーズを訊いてくるときには使えま
             せん。 -f オプションも参照してください。)

     -N      リモートコマンドを実行しません。これはポート転送のみを行いたい場
             合に有用です (プロトコル バージョン 2 のみ)。

     -o オプション
             設定ファイルと同じ形式でオプションを与えたいときに使用します。コ
             マンドラインオプションでは指定できないオプションを指定したいとき
             に有用です。このときのオプションは設定ファイルの 1行と同じ形式で

     -t      強制的に仮想端末を割り当てます。これはリモートマシン上で任意の画
             面ベースのプログラムを実行するときに非常に有用かもしれません。た
             とえば、メニューサービスを実装するときなどに。

     -T      仮想端末の割り当てを禁止します (プロトコル バージョン2 のみ)。

     -v      冗長表示モード。 ssh が進行中のデバッグメッセージを表示するように
             します。これは接続や認証、設定の問題をデバッグするときに助けとな
             ります。またユーザがパスワードとして "s/key" を入力したときに、
             skey(1) チャレンジを表示するためにも冗長モードが使われます。複数
             の -v オプションをつけると冗長性が増します。最大は 3個です。

     -x      X11 の転送を禁止します。

     -X      X11 の転送を許可します。これは設定ファイルによって、ホストごとに
             指定することもできます。

     -C      すべてのデータを圧縮するよう指示します (標準入力、標準出力、標準
             エラー出力、転送された X11 や TCP/IP 接続を含む)。圧縮に使われる
             アルゴリズムは gzip(1) と同じもので、 ``レベル'' は
             CompressionLevel (下記参照) によって制御できます。圧縮は、モデム
             その他の遅い接続においては必要ですが、高速なネットワークでは速度
             が低下するだけです。このデフォルト値は 2ホスト間ごとに設定ファイ
             ルに書くことができます。下の Compress オプションを参照してくださ
             い。

     -L ポート:ホスト:ホスト側ポート
             与えられたローカル (クライアント) ホスト上のポートが、与えられた
             リモートホスト上のポートに転送されるようにします。これはローカル
             側で port に listen (接続受け付け) 用のソケットを割り当てることに
             より行われます。このポートに向けて行われた接続はいつでも安全な通
             信路を経由してリモートマシン上に到達し、そこから host のポート
             hostport に接続されるようになります。ポート転送は設定ファイルに
             よっても指定できます。特権ポートを転送できるのは root だけで
             す。IPv6 アドレスはこれとは別の形式で指定されます:
             port/host/hostport

     -R ポート:ホスト:ホスト側ポート
             与えられたリモート (サーバ) ホスト上のポートが、与えられたローカ
             ルホスト上のポートに転送されるようにします。これはリモート側で
             port に listen (接続受け付け) 用のソケットを割り当てることにより
             行われます。このポートに向けて行われた接続はいつでも安全な通信路
             を経由してローカルマシン上に到達し、ここから host のポート
             hostport に接続されるようになります。ポート転送は設定ファイルに
             よっても指定できます。特権ポートを転送できるのは、リモートマシン
             上に root としてログインしているときだけです。

     -2      ssh がプロトコル バージョン 2 のみを使うよう強制します。

     -4      ssh が IPv4 アドレスのみを使うよう強制します。


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

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

     それ以外の場合、この行は ``キーワード 引数'' の形式とみなされます。とりう
     るキーワードとその意味は以下のとおりです (設定ファイルは大文字小文字を区
     別することに注意してください) :

     Host (B>ホB>スB>ト)
             これ以後の宣言 (次の Host キーワードが現れるまで) を、このキーワ
             ードに与えられるパターンのどれかにマッチするホストのみに限定しま
             す。パターン中では `*' と `'?  がワイルドカードとして使えます。単
             独の `*' は、あらゆるホストに対してのデフォルトになります。ここで
             のホストとは、コマンドライン引数で与えられた hostname のことです
             (つまりホスト名はマッチングの前に正規化されたりしません)。

     AFSTokenPassing (AFS B>トB>ーB>クB>ンB>パB>ス)
             リモートホストに AFS トークンを渡すかどうかを指定します。このキー
             ワードがとりうる引数の値は ``yes'' あるいは ``no'' のどちらかにな
             ります。

     BatchMode (B>バB>ッB>チB>処B>理B>モB>ーB>ド)
             これが ``yes'' に設定されているときは passphrase および password
             の問い合わせが禁止されます。このオプションはスクリプトその他の
             バッチ処理中で、パスワードを打ち込むユーザがいない場合に有用で
             す。引数の値は ``yes'' あるいは ``no'' です。

     CheckHostIP (B>ホB>スB>ト IP B>のB>チB>ェB>ッB>ク)
             このフラグが ``yes'' に設定されていると、ssh は known_hosts ファ
             イルにあるホストの IP アドレスも加えてチェックするようになりま
             す。これによって、DNS 詐称によりホスト鍵が変えられたことを検出で
             きます。このオプションが ``no'' に設定されている場合は、この
             チェックは行われません。

     Cipher (B>暗B>号B>化B>アB>ルB>ゴB>リB>ズB>ム)
             プロトコル バージョン 1 のセッションで使われる暗号化のアルゴリズ
             ムを指定します。現在のところ ``blowfish'' および ``3des'' がサポ
             ートされており、デフォルトは ``3des'' です。

     Ciphers (B>複B>数B>のB>暗B>号B>化B>アB>ルB>ゴB>リB>ズB>ム)
             プロトコル バージョン 2 で許可されている暗号化アルゴリズムの優先
             順位を指定します。複数の暗号化アルゴリズムを指定する場合はカンマ
             で区切ってください。デフォルトは
             ``3des-cbc,blowfish-cbc,cast128-cbc,arcfour'' です。

     Compression (B>圧B>縮)
             データ圧縮を行うかどうかを指定します。引数の値は ``yes'' あるいは
             ``no'' です。

     CompressionLevel (B>圧B>縮B>レB>ベB>ル)
             圧縮をおこなうさいの圧縮レベルを指定します。この引数がとる値は整
             されません。

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

     FallBackToRsh (rsh B>へB>のB>退B>行)
             ssh 経由の接続が拒否された (connection refused、リモートホスト上
             で sshd(8) が listen していない) とき、かわりに (このセッションが
             暗号化されていないという適切な警告のあとで) rsh(1) を自動的に使う
             べきかどうかを指定します。この引数の値は ``yes'' または ``no'' で
             す。

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

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

     GatewayPorts (B>ゲB>ーB>トB>ウB>ェB>イB>ポB>ーB>ト)
             ローカルから転送されたポートに、リモートホストが接続することを許
             可するかどうかを指定します。この引数の値は ``yes'' または ``no''
             でなければならず、デフォルトは ``no'' です。

     GlobalKnownHostsFile (B>大B>域B>的 known_host B>フB>ァB>イB>ル)
             /etc/ssh/ssh_known_hosts のかわりに使用するファイルを指定します。

     HostName (B>本B>当B>のB>ホB>スB>トB>名)
             ログインする本当のホスト名を指定します。これはホストのニックネー
             ムや省略形を指定するときに使います。デフォルトはコマンドラインか
             ら与えられた名前になります。 (コマンドライン、 HostName 指示子の
             両方とも) 数字の IP アドレスでもかまいません。

     IdentityFile (identity B>フB>ァB>イB>ル)
             ユーザの RSA 認証用 identity (秘密鍵) を読むファイルを指定します
             (デフォルトはユーザのホームディレクトリにある $HOME/.ssh/identity
             です)。加えて、認証のさいには認証エージェントによって現れる iden-
             tity も使われます。ファイル名ではユーザのホームディレクトリを表す
             のにチルダ表記を使うことができます。設定ファイルには複数の iden-
             tity が指定されていてもよく、この場合すべての identity が順に試さ
             れます。

     IdentityFile2 (identity B>フB>ァB>イB>ル 2)
             ユーザの DSA 認証用 identity (秘密鍵) を読むファイルを指定します
             (デフォルトはユーザのホームディレクトリにある $HOME/.ssh/id_dsa
             す。

             Keepalive を禁止するには、クライアントとサーバ両方の側の設定ファ
             イルでこの値を ``no'' にする必要があります。

     KerberosAuthentication (Kerberos B>認B>証)
             Kerberos 認証を使うべきかどうか指定します。この引数の値は ``yes''
             あるいは ``no'' です。

     KerberosTgtPassing (Kerberos TGT B>パB>ス)
             Kerberos TGT がサーバを転送するかどうかを指定します。これはその
             Kerberos サーバが実際に AFS kaserver であるときのみ機能します。こ
             の引数の値は ``yes'' あるいは ``no'' です。

     LocalForward (B>ロB>ーB>カB>ルB>転B>送)
             ローカルマシンの TCP/IP ポートを、安全な通信路を経由させてリモー
             トマシン上から与えられた host:port に転送するよう指示します。最初
             の引数はポートで、2番目の引数には host:port の形で指定します。ポ
             ート転送は複数指定することができ、コマンドラインから追加指定する
             こともできます。特権ポートを転送できるのはスーパーユーザだけで
             す。

     LogLevel (B>ロB>グB>レB>ベB>ル)
             ssh が出力するログメッセージの冗長性レベルを指定します。とりうる
             値は次のとおりです: QUIET, FATAL, ERROR, INFO, VERBOSE および
             DEBUG。デフォルトでは INFO です。

     NumberOfPasswordPrompts (B>パB>スB>ワB>ーB>ドB>試B>行B>回B>数)
             パスワードを何回まで訊くかを指定します。これを越えるとあきらめて
             しまいます。このキーワードの引数は整数でなくてはなりません。デ
             フォルト値は 3 です。

     PasswordAuthentication (B>パB>スB>ワB>ーB>ドB>認B>証)
             パスワード認証を使うかどうかを指定します。この引数の値は ``yes''
             または ``no'' です。このオプションはプロトコル バージョン 1 と 2
             の両方に適用されることに注意してください。

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

     Protocol (B>プB>ロB>トB>コB>ル)
             ssh がサポートすべきプロトコルのバージョンの優先順位を指定しま
             す。とりうる値は ``1'' と ``2'' で、複数のバージョンを指定すると
             きはカンマで区切ってください。デフォルト値は ``1,2'' です。これは
             ssh がまず始めにバージョン 1 を試し、それが失敗した場合にバージョ
             ン 2 を試すことを指示しています

     ProxyCommand (B>プB>ロB>キB>シ B>コB>マB>ンB>ド)
             サーバに接続するのに使用するコマンドを指定します。コマンド文字列
             は /bin/sh によって実行され、これは行末まで書くことができます。コ
             マンド文字列では、 `%h' は接続するホスト名に置換され、 `%p' はポ
             ポート転送は複数指定することができ、コマンドラインから追加指定す
             ることもできます。特権ポートを転送できるのはスーパーユーザだけで
             す。

     RhostsAuthentication (rhosts B>認B>証)
             Rhosts ベースの認証を試みるかどうかを指定します。この宣言はクライ
             アント側にのみ影響し、セキュリティにまったくなんの効果もないこと
             に注意してください。rhosts 認証を禁止すると、 rhosts 認証が使われ
             ないときに、遅い接続での認証にかかる時間が短縮されます。ほとんど
             のサーバでは RhostsAuthentication は安全でないという理由で許可さ
             れていません (RhostsRSAAuthenticationを参照)。この引数の値は
             ``yes'' または ``no'' です。

     RhostsRSAAuthentication (rhosts-RSA B>認B>証)
             RSA ホスト認証を使った Rhosts ベースの認証を試みるかどうかを指定
             します。これはほとんどのサイトでの基本的な認証方法です。この引数
             の値は ``yes'' または ``no'' です。

     RSAAuthentication (RSA B>認B>証)
             RSA 認証を試みるかどうかを指定します。この引数の値は ``yes'' また
             は ``no'' にしてください。RSA 認証は identity が存在するか、認証
             エージェントが動いているときにのみ試されます。このオプションはプ
             ロトコル バージョン 1 にしか適用されないので注意してください。

     SkeyAuthentication (s/key B>認B>証)
             skey(1) 認証を使うかどうかを指定します。引数の値は ``yes'' あるい
             は ``no'' になります。デフォルトは ``no'' です。

     StrictHostKeyChecking (B>厳B>格B>なB>ホB>スB>トB>鍵B>チB>ェB>ッB>ク)
             このフラグが ``yes'' に設定されていると、 ssh$HOME/.ssh/known_hosts および $HOME/.ssh/known_hosts2 に自動的に
             ホスト鍵を追加することはしなくなり、ホスト鍵が変わっているホスト
             には接続を拒否します。これはトロイの木馬攻撃に対する最大の防御に
             なります。しかし適切な /etc/ssh/ssh_known_hosts/etc/ssh/ssh_known_hosts2 ファイルをもっていないものの、しょっ
             ちゅう新しいホストに接続するような場合は、この機能は余計なお世話
             になります。基本的にこのオプションは、ユーザが新しいホストを手で
             追加するよう強制するものです。ふつうこのオプションは禁止されてい
             て、新しいホストは自動的に known_hosts ファイルに追加されていきま
             す。どちらの場合も known_hosts にあるホスト鍵は自動的に検証されま
             す。この引数の値は ``yes'' または ``no'' です。

     UsePrivilegedPort (B>特B>権B>ポB>ーB>トB>のB>使B>用)
             外に向けての接続をおこなうときに、特権ポートを使用するかどうかを
             指定します。この引数の値は ``yes'' または ``no'' で、デフォルトは
             ``yes'' になっています。このオプションを ``no'' にすると
             RhostsAuthentication および RhostsRSAAuthentication が使えなくな
             ることに注意してください。 [訳注: ProxyCommand を使っているときも
             特権ポートは使えないため、これらの認証は使えなくなります。]

     User (B>ユB>ーB>ザ)
             ログインするユーザ名を指定します。これは異なるマシン上で異なるユ

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


環境変数

     ssh はふつう以下の環境変数を設定します:

     DISPLAY
             DISPLAY 変数は X11 サーバの場所を示しています。これは ssh によっ
             て、 ``hostname:n'' という形の値が自動的にセットされます。ここで
             hostname の部分はシェルが走っているホストを表しており、 n は n >=
             1 の整数です。 ssh はX11 接続を安全な通信路で転送するために、この
             特別な値を使うのです。ユーザはふつう DISPLAY を明示的に設定すべき
             ではありません。なぜならそうすると X11 の接続が安全でなくなってし
             まうからです (しかもユーザは認証に必要なクッキーを手でコピーしな
             ければならなくなります)。

     HOME    ユーザのホームディレクトリのパス名に設定されます。

     LOGNAME
             USER と同じです。この環境変数を使うシステムで互換性を保つために設
             定されます。

     MAIL    ユーザのメールボックスを指しています。

     PATH    デフォルトの PATH です。これは ssh のコンパイル時に指定されます。

     SSH_AUTH_SOCK
             認証エージェントと通信するのに使われる Unix ドメインソケットのパ
             スを表しています。

     SSH_CLIENT
             接続の末端にあるクライアントの識別子です。この変数にはスペースで
             区切られた 3つの値が入っています: クライアントの IP アドレス、ク
             ライアントのポート、および サーバのポート。

     SSH_TTY
             現在のシェルあるいはコマンドに割り当てられている tty の名前 (端末
             装置へのパス) にセットされます。現在のセッションが端末を持たない
             場合、この変数はセットされません。

     TZ      デーモンが起動したとき、現在の時間帯を表すタイムゾーン変数がセッ
             トされていると、それがここにセットされます (つまりデーモンはその
             値を新規の接続に渡します)。

     USER    ログインしているユーザ名にセットされます。

     これらに加えて、 ssh$HOME/.ssh/environment を読み込み、
     ``VARNAME=value'' という形式の行を環境変数に追加します。


関連ファイル

     $HOME/.ssh/known_hosts
     $HOME/.ssh/identity.pub, $HOME/.ssh/id_dsa.pub
             認証のための公開鍵を格納します (鍵ファイルのうち公開できる部分が
             可読形式で格納されています)。 $HOME/.ssh/identity.pub ファイルの
             内容は、RSA 認証を使ってログインしたいすべてのマシン上の
             $HOME/.ssh/authorized_keys ファイルに加えられていなければいけませ
             ん。また、 $HOME/.ssh/id_dsa.pub ファイルの内容も同様に、 DSA 認
             証を使ってログインしたいすべてのマシン上にある
             $HOME/.ssh/authorized_keys2 ファイルに加えられている必要がありま
             す。これらのファイルは見られてもよいため、他人が読めるようにして
             おいてもかまいません (が必須ではないです)。これらのファイルが自動
             的に使われることは決してなく、必要でもありません。これはただユー
             ザの便宜をはかるために提供されています。

     $HOME/.ssh/config
             これはユーザごとの設定ファイルです。このファイルの形式は上で説明
             されているものです。このファイルは ssh クライアントによって使われ
             ます。このファイルはふつう特に見られてはまずい情報は含んでいませ
             ん。しかし望ましいパーミッションとしては、そのユーザからは読み/書
             きが可能で、他人からはアクセス不可能にしておくのがよいでしょう。

     $HOME/.ssh/authorized_keys
             このユーザのログインに使われる RSA 公開鍵のリストです。この形式は
             sshd(8) のマニュアルで説明されています。このファイルのいちばん簡
             単な形式は、.pub 公開鍵ファイルと同じにすることです (つまり各行
             に、係数のビット数、公開されている指数、係数およびコメントフィー
             ルドがスペースで区切られて格納される)。これは見られても非常にまず
             いというものではありませんが、できればこのユーザからは読み/書きが
             可能で、他人からはアクセス不可能なパーミッションに設定しておくの
             がよいでしょう。

     $HOME/.ssh/authorized_keys2
             このユーザのログインに使われる DSA 公開鍵のリストです。このファイ
             ルも見られて非常にまずいというものではありませんが、このユーザか
             らは読み/書きが可能で、他人からはアクセス不可能のパーミッションを
             設定しておくのがよいでしょう。

     /etc/ssh/ssh_known_hosts, /etc/ssh/ssh_known_hosts2
             システム全体にわたる known hosts 鍵です。
             /etc/ssh/ssh_known_hosts は RSA 鍵を、 /etc/ssh/ssh_known_hosts2
             は DSA 鍵を格納します。これらのファイルはシステム管理者によって用
             意され、その組織内で使われるすべてのマシン用の公開ホスト鍵を格納
             するようになっているはずです。このファイルは誰からも読めるように
             なっていなければいけません。このファイルは 1行ごとに公開鍵を格納
             し、これは次のような形式になっています (各フィールドはスペースで
             区切られます): システム名、係数のビット数、公開されている指数、係
             数、そしてオプションとしてコメント用フィールド。同一のマシンにい
             くつかの異なる名前が使われている場合は、それらをずべてカンマで区
             切って列挙する必要があります。この形式は sshd(8) マニュアルページ
             で説明されています。

             sshd(8) がログイン時にクライアント側のホストを検証するさいには、
             システムの正式な名前 (ネームサーバの返す canonical name) が使われ
             れるので、安全ではありません。) ファイル中の各行はホスト名 (ネー
             ムサーバが返す正式な形式のもの) およびそのホストでのユーザ名をス
             ペースで区切って格納します。ユーザのホームディレクトリが NFS パー
             ティション上にあるようなマシンでは、このファイルは誰にでも読み込
             み可能でなければなりません。 sshd(8) はこれを root として読むから
             です。加えて、このファイルはそのユーザの所有でなければならず、他
             の人が書き込み可能であってはいけません。ほとんどのマシンにおける
             推奨されるパーミッションは、そのユーザが読み書き可能で、他の人は
             アクセス不可能というものです。

             デフォルトでは、 sshd(8) で .rhosts 認証が許可されるには、まず
             RSA ホスト認証に成功することが必要になっています。サーバマシンが
             /etc/ssh/ssh_known_hosts の中にそのクライアントのホスト鍵を持って
             いない場合は、 $HOME/.ssh/known_hosts ファイルにそれを入れておく
             ことができます。これをするのにいちばん簡単なのは、サーバマシンか
             ら ssh を使ってクライアントマシンに接続し直すことです。こうするこ
             とにより、そのホスト鍵が自動的に $HOME/.ssh/known_hosts に追加さ
             れます。

     $HOME/.shosts
             このファイルは .rhosts とまったく同じように扱われます。このファイ
             ルは、 rlogin(1)rsh(1) ではログインできないようにしつつ、 ssh
             で rhosts 認証を使えるようにするためにあります。

     /etc/hosts.equiv
             このファイルは .rhosts 認証で使われます。ここには正式なホスト名が
             各行に記載されています (この形式の完全な説明は sshd(8) マニュアル
             ページにあります)。このファイルにクライアントホストが載っている
             と、クライアント側とサーバ側のユーザ名が同じ場合にログインは自動
             的に許可されます。普通は RSA ホスト認証が成功してからでなくてはい
             けません。このファイルは root のみが書き込めるようにしておくべき
             です。

     /etc/ssh/shosts.equiv
             このファイルは /etc/hosts.equiv とまったく同じように扱われます。
             このファイルは ssh を使うが、rsh/rlogin は使わないユーザのログイ
             ンを許可するのに有用です。

     /etc/ssh/sshrc
             このファイルのコマンドは、ユーザがログインしてシェル (あるいはコ
             マンド) が開始する直前に ssh によって実行されます。より詳しい情報
             については sshd(8) マニュアルページを見てください。

     $HOME/.ssh/rc
             このファイルのコマンドは、ユーザがログインしてシェル (あるいはコ
             マンド) が開始する直前に ssh によって実行されます。より詳しい情報
             については sshd(8) マニュアルページを見てください。

     $HOME/.ssh/environment
             環境変数の追加定義を格納します。上の 環境変数の節を見てください。

     libcrypto.so.X.1
         イセンスあるいは特許つきのコンポーネントは、外部ライブラリから取り込
         まれます。

     o   SSH プロトコル 1.5 と 2 をサポートするようにアップデートされました。
         これで他のすべての SSH クライアントやサーバと互換になります。

     o   kerberos(8) 認証とチケットパスの追加サポートが含まれています。

     o   skey(1) を用いた、使い捨てパスワード (one-time password) 認証をサポー
         トしています。

     OpenSSH は以下の人々によって製作されました: Aaron Campbell, Bob Beck,
     Markus Friedl, Niels Provos, Theo de Raadt, そして Dug Song。

     SSH プロトコル 2 のサポートは Markus Friedl の手によるものです。


日本語訳

     新山 祐介 (euske@cl.cs.titech.ac.jp) 2000/11/23

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


関連項目

     rlogin(1), rsh(1), scp(1), ssh-add(1), ssh-agent(1), ssh-keygen(1),
     telnet(1), sshd(8), ssl(8)

FreeBSD 4.4                   September 25, 1999                   FreeBSD 4.4

ABELNET VPSサービス