subversionをsvn+ssh://で

2007年 2月 13日(火曜日) 21:56 CrapeMyrtle Tips - Linux
印刷

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/

というコマンドで出来るようになる.

最終更新 2010年 3月 19日(金曜日) 03:24