はじめに
このドキュメントは、ssh を使って cvs.mozilla.org にアクセスするためのガイドです。
このドキュメントでは、あなたが cvs.mozilla.org への CVS 書き込み権限を持っていることを前提にしています。SSH を経由した anonymous または read-only アクセスは、現在のところ利用できません。read-only の CVS アクセスについての解説は ソースコード のページを、書き込み権限を得るための解説は 書き込み権限を得るには をご覧ください。
SSH キーを生成する
まずは ssh をインストールしてください。Linux、BSD および Mac OS X ディストリビューションのほとんどにはすでにインストールされているはずです。Windows では Cygwin を使って、Net カテゴリから openssh をインストールすると使えるようになります。こうした方法すべてが失敗してしまっても、OpenSSH があります。幅広く使用されており、非常に移植性の高い実装を提供しています。次のコマンドで適切なキーペアを生成することができるはずです。
ssh-keygen -t dsa
完了までに少し時間がかかり、次にパスフレーズ設定のためのプロンプトが表示されます。パスフレーズを入力すると、ssh-keygen は 2 つのファイルを生成します。
~/.ssh/id_dsa
と
~/.ssh/id_dsa.pub
id_dsa は誰にも 送らないで ください。
Bugzilla に Server Operations バグを登録して、あなたの id_dsa.pub を添付してください。
CVS を設定して SSH を使う
お使いのシステム環境設定で、ssh バイナリがどのように呼ばれていても、必ず CVS_RSH を設定してください。ssh にパスが通っている場合は、フルパスにする必要はありません。
CVSROOT
環境変数を設定する際に、pserver
を ext
にしてください。先に使用していた pserver ツリーを保持したい場合は、ツリーの中にある各 CVS
サブディレクトリ内の Root
ファイルを更新する必要があります。この作業は、unix スタイルの find
と perl
を使って行うことができます。
find . -name Root -exec perl -p -i -e "s/pserver/ext/" {} \;
ファイアウォールへの対応
Do not attempt to perform the steps in this section unless you have first verified that you can access cvs.mozilla.org from outside of the firewall. Only proceed with these steps once you are certain you can access cvs.mozilla.org from the open Internet.
If you are behind a firewall with an http tunneling proxy, you can use a program called corkscrew, in combination with the ProxyCommand
ssh config directive to continue to access the mozilla CVS server. This technique was taken from Eric Engstrom's site, but the instructions have been re-written specifically for Mozilla.
- Download, build, and install corkscrew by following the instructions in the
INSTALL
file in the corkscrew source distribution. Corkscrew uses the standard "./configure; make install" technique common to many open source projects. - Make sure you have a
~/.ssh/config
file that has at least the following directives
PreferredAuthentications hostbased,publickey,password Host cvs.mozilla.org ProxyCommand corkscrew <i>proxyserver.foo.com</i> <i>port</i> %h %p
Replace proxyserver.foo.com with the hostname of your proxy server, and port with the numeric TCP port on which the http tunnel is running.
The usual cvs commands should now work.
パスフレーズの要求を避けるには
You can avoid repeated passphrase requests by using ssh-agent. If you don't already run ssh-agent on your computer, it's probably easiest to start it up whenever you set up your environment to checkout and build Mozilla. Assuming you use a shell script or batch file to set things up, just add the commands below to the end of your file.
POSIX シェル
eval `ssh-agent -s` ssh-add ~/.ssh/id_dsa $SHELL ssh-agent -k exit
MS-DOS コマンドプロンプト
for /f "tokens=1,2,3* delims=; " %%a in ('ssh-agent -c') do if "%%a"=="setenv" set %%b=%%c set HOME=/cygdrive/c/path/to/your/cygwin/home/directory ssh-add ~/.ssh/id_dsa start /b /wait cmd.exe ssh-agent -k exit
Essentially both sets of commands do the same thing. First ssh-agent is called and its output is evaluated in the current environment. This sets environment variables that let cvs know how to find and use the agent. Your private key is then added to ssh-agent using ssh-add at which point you will be prompted for the key's passphrase. Since it's important that you kill the agent when you're finished with it, the last three lines start a child environment that, when exited, will result in the agent's process being killed. The environment you will actually use to build is the child environment.
There are a few things to note about the commands for the MS-DOS Command Prompt. First of all they will only work in versions of Windows based on NT (NT/2000/XP). If you're building on Win9x/WinME you'll need to find an alternative solution. If you're typing the commands directly (as opposed to storing them in a batch file that you call), you'll need to replace the occurances of "%%" in the first line with "%". Finally, note that ssh-add needs the environment variable HOME to be set with the cygwin path to your cygwin home directory.