subversionをsvn+ssh://でアクセスできるようにする.
svnというリポジトリにアクセスするユーザを作成し,リポジトリの所有者を変更.
# useradd svn
# chown -R svn:svn /var/svn
あとはSSH接続用の公開鍵・秘密鍵のペアを作成する.
$ ssh-keygen -t dsa -C "SSH2 DSA key for svn"
Generating public/private dsa key pair.
Enter file in which to save the key (~/.ssh/id_dsa): ./id_dsa_svn
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ./id_dsa_svn.
Your public key has been saved in ./id_dsa_svn.pub.
The key fingerprint is:
5e:ca:af:f2:45:ff:62:27:2b:86:5d:8f:08:b6:a0:5a SSH2 DSA key for svn
$ mv id_dsa_svn ~/.ssh/
$ chmod 400 ~/.ssh/id_dsa_svn
$ su
# cd /home/svn
# mkdir .ssh
# chmod 755 .ssh
# cd .ssh
# cat /path/to/id_dsa_svn.pub > authorizaed_keys
# chmod 644 authorizaed_keys
# vi authorizaed_keys
authorizaed_keysの中身は次のように,command=から始まる物を追加する.
command="umask 002; /usr/local/bin/svnserve -t --tunnel-user=ユーザ名 -r /var/svn",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-dss AAAAB3Nza...(略)... SSH2 DSA key for svn
あとはクライアントの設定であるが,svnの設定ファイルである~/.subversion/configのtunnelsセクションに,以下の行を追加する.
myssh = ssh -i /path/to/id_dsa_svn -l svn
これで,svn+sshで接続する際には,
$ svn log svn+myssh://example.com/repos/
というコマンドで出来るようになる.