次: , 前: Password authentication server, 上: Password authenticated


2.9.3.2 パスワード認証によるクライアントの使用

cvs コマンドをパスワード認証サーバを通じて遠隔リポジトリで実行 するためには、pserver プロトコル、使用者名、リポジトリのホスト、 リポジトリへのパスを指定します。例えば:

     cvs -d :pserver:bach@faun.example.org:/usr/local/cvsroot checkout someproj

もしくは、

     CVSROOT=:pserver:bach@faun.example.org:/usr/local/cvsroot
     cvs checkout someproj

しかし、全員に使用可能なリポジトリ (すなわち、使用者名がパスワードを要 求しないもの) でない限り、最初に ログイン しなければなりません。 ログインはリポジトリのパスワードを認証します。これは login コマ ンドで行われ、対話的にパスワード認証を促します。

     cvs -d :pserver:bach@faun.example.org:/usr/local/cvsroot login
     CVS password:

パスワードを入力し終わると、cvs がサーバで認証します。認証が成功 すれば、その使用者名、ホスト、リポジトリ、パスワードが永久に記録されま す。ですから、将来のリポジトリでの通信は cvs login の実行を要求 しません。(認証が失敗すれば、cvs はパスワードが正しくないことを言っ た後終了し、何も記録されません。)

既定では、登録はファイル $HOME/.cvspass に保存されます。ファ イルの形式は人間が読めるもので、ある程度人間が編集可能でもありますが、 パスワードは平文で保存されているのではないことは注意してください—そ れらは "純真な" 侵入 (つまり、システム管理者や他の悪意のない人間が不 注意に見るといった事) を防ぐため、簡単な符号化がされています。

このファイルの既定の場所を CVS_PASSFILE 環境変数を設定すること で変更することができます。 この変数を使用するのであれば、 cvs login を実行する前に設定しなければいけません。 cvs login を実行した後に設定した場合、 その後の cvs コマンドは、 サーバに送るパスワードを見付けられません。

一度ログインをすると、その遠隔リポジトリを使う全ての cvs のコマン ドは保存されたパスワードで認証します。ですから、例えば

     cvs -d :pserver:bach@faun.example.org:/usr/local/cvsroot checkout foo

はそのまま動作します (サーバ側でパスワードが変更されない限り。その場合 は cvs login をもう一度実行する必要があります)。

リポジトリ指定中に `:pserver' が存在していなければ、cvs は変 わりに rsh で接続すると仮定することに気を付けてください (see Connecting via rsh)。

もちろん、一度作業コピーを取り出してそこから cvs のコマンドを実行 していれば、明示的にリポジトリを指定する必要は無くなります。というのは、 cvs は作業コピーの CVS サブディレクトリから導き出すことが できるからです。

任意の遠隔リポジトリのパスワードは cvs logout コマン ドを使用すると CVS_PASSFILE から消去できます。