Jamers Posted December 23, 2014 Report Share Posted December 23, 2014 SubVersioN(以下简称SVN),是一个版本控制工具,它可以实现了解何时修改过哪些地方,程序开发中应用非常多。关于它的特性只是简单说明一下,需要了解它的可以到下列网址上去了解。http://baike.baidu.com/link?url=h9cklVJQSas0d9sy-RaBOPxPNusbEbGZHhuYptScomOl2_2TtmQk4qOr_E3WcF4WWCWGEcl41g5GdpFwFa7uiK 当然它也不是没有缺点,svn的验证方式居然是明文,如果我们把服务器放在公网上,然后更新提交相应的更新,每次提交都会面临帐号被盗的风险,一般源代码是极为重要的东西,一旦泄露后果不堪设想。所以我们想用其它更加安全的方式进行。才有了此文章,本文内容全部通过实际验证,测试相关版本情况如下: 服务端: FreeBSD freebsd 10.1-RELEASE FreeBSD 10.1-RELEASE #0 r274401: Tue Nov 11 21:02:49 UTC 2014 root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64 subversion 1.8.10 客户端: putty 0.63 TortoiseSVN 1.8.8, Build 25755 - 64 Bit , 2014/08/10 14:44:06 首先服务器上安装subversion,我采用ports安装,不多说了。 cd /usr/ports/devel/subversion make install 安装完成,建立相关帐号以及目录 pw groupadd svn pw useradd -G svn svn mkdir -p /home/svn/repos chown -R svn:svn /home/svn svnadmin create /home/svn/repos chmod -R 777 /home/svn/repos 修改相应配置文件,并启动svnserve ee /home/svn/repos/conf/svnserver.conf #修改配置文件 anon-access = none auth-access = write ######################### #此内容仅暂供测试svn直接连接,测试完成后请删除 password-db = passwd ######################### authz-db = authz ee /home/svn/repos/conf/authz #修改身份验证信息 [/] jamers=rw #jamers有读写权限 ######################################### ee /home/svn/repos/conf/passwd #在[users]下添加密码信息 jamers = testtest ######################################### ee /etc/rc.conf #添加下列内容 svnserve_enable="YES" #默认数据路径为:/home/svn/repos #可以启动SVN服务器了 /usr/local/etc/rc.d/svnserve start svnserver已经安装完成,默认情况下可以通过svn://xx.xx.xx.xx进行访问了,但是svn身份验证通常是明文传输,如果放在服务器上非常不安全。测试完成请将svnserver.conf中配置的password-db = passwd注释掉,然后重启svnserve,这样正常的svn连接方式就无效了。 下载putty http://the.earth.li/~sgtatham/putty/latest/x86/putty.zipmkdir ~/.ssh用PUTTYGEN.EXE生成私钥和公钥,生成完后,将上面文本框中内容复制下来,写入.ssh目录下的authorized_keys里去把私钥和公钥保存起来备用。测试使用生成的私钥能否登录系统。确定无误就退出。 windows中的SVN客户端设置ssh client:我这边的值是:"E:\Program Files\TortoiseSVN\bin\TortoisePlink.exe"连接前打开PUTTY中的PAGEANT.EXE,如果中间没有私钥请导入对应密钥,每次需要连接SVN的时候都必须有密钥在里面。 链接部分使用此类型: svn+ssh://jamers@192.168.1.50:/home/svn/repos 这样,SVN的密码就不会被泄露了,以实现安全。 Link to comment Share on other sites More sharing options...
Jamers Posted December 23, 2014 Author Report Share Posted December 23, 2014 实际测试中发现有点小问题,不过不影响正常使用,subversion使用到 cyrus-sals2 模块,此模拟运行时会去查找sql验证模式,由于未配置会有相应的错误提示。 Dec 23 16:14:19 freebsd svnserve: sql_select option missing Dec 23 16:14:19 freebsd svnserve: auxpropfunc error no mechanism available 找找看能不能去除此错误提示。 Link to comment Share on other sites More sharing options...
Jamers Posted December 23, 2014 Author Report Share Posted December 23, 2014 经过查看源代码,发现因为sasl2主程序中有调用相应插件配置文件,如果未找到sql_select设置直接报上面的错误,原因找到了,我们去建一个假的配置文件吧。 根据源代码以及相关说明文件,发现配置文件目录在 /usr/local/etc/sasl2,这就好办了。 ee /usr/local/etc/sasl2/svn.conf #没有文件就新建一个 下面的语句并没有使用只要随便设个值就行了 sql_select = select password from table where user='%u' 重新启动svnserve,这样就没有错误提示了,PASS! Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now