yum install -y openssh-server subversion
systemctl start svnserve.service
systemctl enable svnserve.service
vim /etc/sysconfig/svnserve
svnadmin create /home/svn/repos/acc_repo
cd /home/svn/repos/acc_repo/conf/
cat svnserve.conf
[general]
# force-username-case = none
# 匿名访问的权限 可以是read、write,none,默认为read
anon-access = none
# 使授权用户有写权限
auth-access = write
# 密码数据库的路径
password-db = passwd
# 访问控制文件
authz-db = authz
# 认证命名空间,SVN会在认证提示里显示,并且作为凭证缓存的关键字
realm = /var/svn/account
[sasl]
cat authz
[aliases]
# 用户组
[groups]
admin = admin
#用户组所对应的目录
[/]
@admin = rw
#用户组权限
*=r
cat passwd
[users]
admin = 123456
svn co svn://192.168.140.12/acc_repo --username admin
svnadmin create /home/svn/repos/ssh_repo
cat svnserve.conf
[general]
# 匿名访问的权限 可以是read、write,none,默认为read
anon-access = none
# 使授权用户有写权限
auth-access = write
# 访问控制文件
authz-db = authz
[sasl]
cat authz(注意:此处设置的用户将用作ssh通道中指定svn的用户)
[aliases]
# 用户组
[groups]
#用户组所对应的目录
[test:/]
svnuser = rw
创建新的centos用户:svn_ssh
useradd svn_ssh
passwd svn_ssh
生成一个ssh密钥对,用作ssh登录凭证
ssh-keygen -t rsa -b 1024 -f svnuser.key
将生产的公钥放置svn_ssh用户下的authorized_keys(/etc/ssh/sshd_config中的默认公钥文件就是authorized_keys)
mkdir -p /home/svn_ssh/.ssh
设置 authorized_keys 格式如下
command="svnserve -t -r --tunnel-user=",no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding ssh-rsa
cat /home/svn_ssh/.ssh/authorized_keys
command="/usr/bin/svnserve -t -r /home/svn/repos --tunnel-user=svnuser",no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCsvesIsA/gdEn6tJTslgs034kLdRMqgPFQMHWAui3fJ9kCbY4ZJaHSmCF0aBOHdvQtRCseMnPzt7zxnPrmTWlMWBWtJTu7rYxvSC5hyewaExv9k+u1JKIkCK2lgSPhvP+V3qQbxSKA421vaGU98lrG2jsPGYJJxKn82C34/4Fx0w== [email protected]
生成用户.subversion目录
svn co
设置svn ssh拉取代码制定的key文件(需要将之前生成的私钥拷贝过来)
vim ~/.subversion/config
在[tunnels] 下面添加配置
ssh = /usr/bin/ssh -l svn -i /root/.subversion/svnuser.key
拉取代码
svn co svn+ssh://192.168.140.12/ssh_repo