http は遅い気がするので ssh で。 (簡単だし)
まずはインストール。
$ sudo yum install -y subversion
Subversion サーバ用のアカウントを用意する。 パーミション設定や管理の面からお勧め。 ログイン禁止で構いません。 公開鍵毎に Subversion リポジトリに対するユーザを識別します。 sshd の /etc/ssh/sshd_config は PasswordAuthentication no として PubkeyAuthentication yes とします。
次に、用意したアカウントの ~/.ssh/authorized_keys を設定します。 1行に1ユーザ(svn)を書いていきます。
command="svnserve -t --tunnel-user=MiCHiLU -r /home/svnuser/svnrepo"\
,no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty\
ssh-dss ...
command="svnserve ..." で svnserve を起動しています。 以降は制限のための記述で、その後に通常の ssh-pubkey を記述します。
以上で、サーバ側の設定は終わり。 次、 ssh クライアントからの確認。
$ ssh -i ~/.ssh/id_for_svn svnuser@subversion.server
( success ( 1 2 ( ANONYMOUS EXTERNAL ) ( edit-pipeline ) ) )
shell ではなく svnserve の応答が帰れば成功です。 次、 svn クライアントの設定。
~/.subversion/config
[tunnels]
egg = $SVN_EGG ssh -i ~/.ssh/id_for_svn -l svnuser
[tunnels] ディレクティブに ssh コマンドへのショートカット(?)を書きます。 次、 svn クライアントでアクセスしてみます。
$ svn ls svn+egg://subversion.server
$ svn log --limit 1 svn+egg://subversion.server
などとやってみて、正常な応答が帰ってくることを確認します。
