通过ssh使用svn

Saturday, October 18th, 2008 @ 21:51

通过ssh来存取svn仓库自然是很方便的,不用架设webdav服务,不用多侦听一个端口等等。一般这样就可以工作了:

svn co svn+ssh://host/path/to/svn/repos

如果ssh不工作在默认的22端口上,如2222,有两个办法解决:

# 设置SVN_SSH变量:

export SVN_SSH="ssh -p 2222"

# 也可以编辑~/.subversion/config,其中有tunnel一节,加入:

proa = ssh -p 2222

然后就可以这样用了:

svn svn+proa://host/path/to/svn/repos

如果遇到错误"bash: svnserve: command not found",是因为svn调用ssh后得到是非交互shellPATH环境变量有些不同,无法直接找到svnserve。可以试着在放置svn仓库的主机上加入相关路径到.bashrc,或者给svnserve/usr/bin下面加个符号链接,确保非登陆shell可以找到svnserve。也可以搞的很复杂:

生成一组新的ssh密钥对,用下面的格式把公钥放到svn主机上

command="/full/path/to/svnserve -t" TYPE KEY COMMENT

客户机用类似前面指定端口的方法指定的私钥

export SVN_SSH="ssh -p 2222 -i /home/dude/.ssh/id_svn_only"

这样svn在通过ssh隧道连接时就可以启动svnserve了。

Posted in t | No Comments »

Leave a Reply