決定版 Subversion+ssh+TortoiseSVNでソースを管理

趣味で作成しているrailsのプログラムがあります。会社の定時後やリビングのこたつの上でプログラミングするときにソースを一括管理したいなーと思いSubversionの導入を行ってみました。
リポジトリの作成先は例の海外VPSサーバーです。
SubversionのフロントエンドにapacheWebDAVを使用する方法は知ってたんだけど、例のサーバーはメモリが256Mしかなくわざわざapacheを立ち上げるのが嫌だったのでWindowsからsshでアクセスする方法を試してみました。
Webで調べながら進めていったんだけど情報が分散していたのでまとめてみます。

1.Subversionのインストール(サーバー)

  • 使用しているOSはdebian(etch)です。aptで簡単にインストールできます。

# apt-get install subversion

2.リポジトリの作成(サーバー)

  • とりあえず一般ユーザーのホームディレクトリにsvnという名前でリポジトリを作成してみます。

$ cd
$ svnadmin create svn

3.WinSCPのインストール(クライアント)

4.鍵の作成(クライアント)

  • インストールしたWinSCPのフォルダの中にPuTTYフォルダがあります。その中のputtygen.exeを起動して鍵ファイルを作成します。まず「Parameters」の「Type of Key to generate」で「SSH-2 DSA」を選択し、「Actions」の「Generate」をクリックします。そして、ウインドウの空きスペースで狂ったようにマウスを動かしましょう。汗をかいた分だけ強固な鍵になります(ウソ)。
  • 鍵ができたら「Key passphrase」(パスワード)を入力して「Save private key」ボタンを押して秘密鍵を保存しましょう。名前は適当でいいですがここでは「id_dsa.ppk」としておきます。Windows Vistaの人はPuTTYフォルダ以外に鍵を作成することをお勧めします。バーチャルストア機能により他のプログラムから鍵へのアクセスが厄介になります。というわけでVistaの私はc:\user\kazuhisa\sshに鍵を作成しました。
  • 次に「Public key for pasting in to OpenSSH authorized_keys file」の下のテキストをコピーしてメモ帳に貼り付けておきます。これは後で使います。

5.TortoiseSVNのインストール

6.鍵の追加(サーバー)

  • 先ほどメモ帳にコピペした公開鍵をftpなりWinSCPなりを使ってサーバーに持っていきます。ここでは公開鍵のファイル名を「openssh_id_dsa.pub」としておきます。
  • 鍵ファイルをホームディレクトリの.sshフォルダに移動します。存在しない場合は作成してください。

$ cd
$ mkdir .ssh
$ chmod 700 .ssh
$ mv openssh_id_dsa.pub .ssh
$ cd .ssh

  • 次にauthorized_keysに追加します。

$ cat openssh_id_dsa.pub >> authorized_keys

7.TortoiseSVNに鍵を設定(クライアント)

  • デスクトップなど適当な場所で右クリックしTortoiseSVN→設定(S)→ネットワークを選択。SSHクライアントに次を設定

TortoisePlink -C -l kazuhisa -i C:\Users\kazuhisa\ssh\id_dsa.ppk

  • kazuhisaの部分はサーバーのユーザーID、-iオプション以下は先ほど作成した秘密鍵を指定します。

8.pageantの設定(クライアント)

  • いちいちpassphraseを入力するのは面倒なのでpageantを常駐させます。
  • WinSCP\PuTTY以下にあるpageant.exeをスタートアップにショートカットを作成し登録します。
  • ショートカットのプロパティを開き、秘密鍵のパスをオプションに付け加えます。

"C:\Program Files\WinSCP\PuTTY\pageant.exe" "C:\Users\kazuhisa\ssh\id_dsa.ppk"

  • pageantを立ち上げるとpassphraseを聞かれますので鍵を作成した時のフレーズを入力してください。

9.リポジトリを参照してみよう(クライアント)

  • デスクトップなど適当な場所で右クリックしTortoiseSVNリポジトリブラウザ(R)をクリック。URLは次のような感じで指定します。

svn+ssh://hogehoge.net/home/kazuhisa/svn

エラーが発生せず参照できたらOKです。あとは好きなだけソースを登録してみましょう。

まとめてみて思ったけど、やっぱりapacheWebDAVの方がインストールも、クライアントの設定も簡単だと思いますw。
どうしても暗号化して通信したい方やサーバー資源を少しでもケチりたい方はお試しください。