1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
---
title: Using SSH to connect to CVS
slug: Using_SSH_to_connect_to_CVS
tags:
- Developing Mozilla
translation_of: Archive/Using_SSH_to_connect_to_CVS
---
<p>
</p>
<h2 id="はじめに"> はじめに </h2>
<p>このドキュメントは、ssh を使って cvs.mozilla.org にアクセスするためのガイドです。
</p>
<div class="note">
<p>このドキュメントでは、あなたが cvs.mozilla.org への CVS 書き込み権限を持っていることを前提にしています。SSH を経由した anonymous または read-only アクセスは、現在のところ利用できません。read-only の CVS アクセスについての解説は <a href="ja/Mozilla_Source_Code_(CVS)">ソースコード</a> のページを、書き込み権限を得るための解説は <a href="ja/Getting_commit_access_to_Mozilla_source_code">書き込み権限を得るには</a> をご覧ください。
</p>
</div>
<h2 id="SSH_キーを生成する"> SSH キーを生成する </h2>
<p>まずは ssh をインストールしてください。Linux、BSD および Mac OS X ディストリビューションのほとんどにはすでにインストールされているはずです。Windows では Cygwin を使って、Net カテゴリから openssh をインストールすると使えるようになります。こうした方法すべてが失敗してしまっても、<a class="external" href="http://www.openssh.com/">OpenSSH</a> があります。幅広く使用されており、非常に移植性の高い実装を提供しています。次のコマンドで適切なキーペアを生成することができるはずです。
</p>
<pre>ssh-keygen -t dsa
</pre>
<p>完了までに少し時間がかかり、次にパスフレーズ設定のためのプロンプトが表示されます。パスフレーズを入力すると、ssh-keygen は 2 つのファイルを生成します。
</p>
<pre>~/.ssh/id_dsa
</pre>
<p>と
</p>
<pre>~/.ssh/id_dsa.pub
</pre>
<p><i>id_dsa</i> は誰にも <b>送らないで</b> ください。
</p><p><a class="link-https" href="https://bugzilla.mozilla.org/">Bugzilla</a> に Server Operations バグを登録して、あなたの <i>id_dsa.pub</i> を添付してください。
</p>
<h2 id="CVS_を設定して_SSH_を使う"> CVS を設定して SSH を使う </h2>
<p>お使いのシステム環境設定で、ssh バイナリがどのように呼ばれていても、必ず <i>CVS_RSH</i> を設定してください。ssh にパスが通っている場合は、フルパスにする必要はありません。
</p><p><code>CVSROOT</code> 環境変数を設定する際に、<code>pserver</code> を <code>ext</code> にしてください。先に使用していた pserver ツリーを保持したい場合は、ツリーの中にある各 <code>CVS</code> サブディレクトリ内の <code>Root</code> ファイルを更新する必要があります。この作業は、unix スタイルの <code>find</code> と <code>perl</code> を使って行うことができます。
</p>
<pre>find . -name Root -exec perl -p -i -e "s/pserver/ext/" {} \;
</pre>
<h2 id="ファイアウォールへの対応"> ファイアウォールへの対応 </h2>
<p>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.
</p><p>If you are behind a firewall with an http tunneling proxy, you can use a program called <a class="external" href="http://agroman.net/corkscrew/">corkscrew</a>, in combination with the <code>ProxyCommand</code> ssh config directive to continue to access the mozilla CVS server. This technique was taken from <a class="external" href="http://www.mtu.net/~engstrom/ssh-proxy.php">Eric Engstrom's site</a>, but the instructions have been re-written specifically for Mozilla.
</p>
<ol><li> Download, build, and install corkscrew by following the instructions in the <code>INSTALL</code> file in the corkscrew source distribution. Corkscrew uses the standard "./configure; make install" technique common to many open source projects.
</li><li> Make sure you have a <code>~/.ssh/config</code> file that has at least the following directives
</li></ol>
<pre>PreferredAuthentications hostbased,publickey,password
Host cvs.mozilla.org
ProxyCommand corkscrew <i>proxyserver.foo.com</i> <i>port</i> %h %p
</pre>
<p>Replace <i>proxyserver.foo.com</i> with the hostname of your proxy server, and <i>port</i> with the numeric TCP port on which the http tunnel is running.
</p><p>The usual cvs commands should now work.
</p>
<h2 id="パスフレーズの要求を避けるには"> パスフレーズの要求を避けるには </h2>
<p>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.
</p>
<h4 id="POSIX_シェル">POSIX シェル</h4>
<pre class="eval">eval `ssh-agent -s`
ssh-add ~/.ssh/id_dsa
$SHELL
ssh-agent -k
exit
</pre>
<h4 id="MS-DOS_コマンドプロンプト">MS-DOS コマンドプロンプト</h4>
<pre class="eval">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
</pre>
<p>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. </p><p>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.
</p>
<div class="noinclude">
</div>
|