linux svn+ssh,Linux(CentOS 6)安装SVN支持svn和svn+ssh方式

svn方式很简单,svnadmin create之后svnserve启动就可以访问,用svn+ssh方式需要使用serve的tunel即隧道方式,即在登录时启动一个隧道将请求作为svn方式。

这个方式好像很难找到资料,百度上的真是大多是互相copy,几乎都不验证,费了老半天劲才搞明白如何做。

其中有几点要注意:

1. svn+ssh,需要添加一个linux系统用户,能登录系统的。

2. 用ssh-keygen生成密钥后,需要改为authorized_keys,并且指定command为svnserve的隧道。

3.在checkout时和svn方式不一样,“svn co svn://192.168.11.222/repos”,而后者是“svn co svn+ssh://linuxuser@192.168.11.222/svnroot/repos”,一定要加上路径,否则会说找不到这个repository.

4.新建一个svn用户,在auth里指定权限,在passwd里指定密码,用svn方式就可以访问;同时它可以作为ssh方式的隧道。

5. 新建一个系统用户,在.ssh/authorized_keys指定隧道。

6.需要将svn用户和系统用户都添加到auth里面,否则会说Authorized failed。

以下是详细步骤:

除了“ssh-keygen -t rsa -b 1024”生成密钥那里需要敲几个回车,其他地方都可以直接执行。

##################################################################################

##################################################################################

# install apache-svn module.

sudo yum install -y subversion

# 安装subversion时会安装svn服务器端

# start svnserver, specifies the svnroot.

sudo mkdir /svnroot

sudo chmod 777 /svnroot

# create repos

cd /svnroot/

svnadmin create repos

# disable anon

cd /svnroot/repos/conf

cat << END > svnserve.conf

[general]

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

[sasl]

# use-sasl = true

# min-encryption = 0

# max-encryption = 256

END

# add auth

cd /svnroot/repos/conf

# add to the end of file.

cat << END > authz

[aliases]

# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]

# harry_and_sally = harry,sally

# [repository:/baz/fuz]

# @harry_and_sally = rw

[/]

# svnuser is not a system user, just a user in svn, whose password stored in ./passwd.

svnuser=rw

END

# add user to svn

cd /svnroot/repos/conf

cat << END > passwd

[users]

svnuser=svnuser_password

END

# start server

svnserve -d -r /svnroot

# client checkout

cd;

rm -rf repos

svn co svn://192.168.11.222/repos

# support svn+ssh.

##################################################################################

##################################################################################

# add user linuxuser

sudo useradd linuxuser

# set password to linuxuser_password

printf "linuxuser_password\nlinuxuser_password"|sudo passwd linuxuser

# generate public/private key.

sudo su linuxuser

# press enter 3times.

cd;

mkdir .ssh

cd .ssh

ssh-keygen -t rsa -b 1024

# generate tunnel

rm -f authorized_keys

# you may need to modify the svnroot and svnuser if need.

echo -n 'command="/usr/bin/svnserve -t -r /svnroot --tunnel-user=svnuser"' >> authorized_keys

echo -n ',no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding' >> authorized_keys

echo -n ' ' >> authorized_keys

cat id_rsa.pub >> authorized_keys

exit

# we must add the svnuser and linuxuser to the svn auth

cd /svnroot/repos/conf

cat << END > authz

[aliases]

# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]

# harry_and_sally = harry,sally

# [repository:/baz/fuz]

# @harry_and_sally = rw

[/]

# svnuser is not a system user, just a user in svn, whose password stored in ./passwd.

svnuser=rw

# we must add the linux user also.

linuxuser=rw

END

# chechout

cd;

rm -rf repos

svn co svn+ssh://linuxuser@192.168.11.222/svnroot/repos0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值