sshで使用した場合、通常はLinuxのアカウントでリビジョンは更新される
しかし、svnではOSのアカウントとは別にローカルなsvnのユーザを設定できる。これならひとつのLinuxアカウントで複数のsvnユーザに分割可能だ。sshの公開鍵はひとつのアカウントでも複数のKeyを持つことができるので、その仕組みを利用して複数のsvnユーザを切り分ける。各Key毎にcommandを指定出来るので、ここにsvnの鯖側のコマンドを書き、そのコマンドの引数にsvnのローカルユーザ名を指定すれば出来上がり。クライアント側は、svnユーザ毎に異なるKeyで接続すればいい。
commandが指定されていれば、それ以外のコマンドの実行が不可になるのでsvn専用アカウントにもなり、ついでに仮想端末を禁止すれば通常のリモートログインのようなこともできなくなり多少は安全になるかもしれない。
$Author$キーワードの変換にLinuxアカウント名を使いたくない場合など便利かもしれない
~/.ssh/authorized.keysの公開鍵句(ssh-rsa~)の前に
command=”/usr/bin/svnserve -t –tunnel-user=<SvnUserName>“,no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty
を足しておく。※<SvnUserName>はLinuxのアカウントでなくsvnのローカルユーザ名