【SVN+SSH】搭建SVN并使用SSH进行免密拉取推送代码

  • 一、安装svn、openssh-server服务
  • 二、开启svn服务,创建测试仓库,并能通过账号密码拉取
    • 定义svn仓库文件位置
    • 创建仓库:acc_repo
    • 配置拉取仓库的账号密码
    • 通过账号密码拉取代码
  • 三、创建测试仓库,通过svn+ssh拉取代码
    • 创建仓库:ssh_repo
    • 配置拉取仓库的ssh通道
    • 配置ssh代理的centos用户,开启ssh凭证认证
    • 尝试拉取代码,以centos为例,不介绍TortoiseSVN使用

一、安装svn、openssh-server服务

yum install -y openssh-server subversion
systemctl start svnserve.service
systemctl enable svnserve.service

二、开启svn服务,创建测试仓库,并能通过账号密码拉取

定义svn仓库文件位置

vim /etc/sysconfig/svnserve

创建仓库:acc_repo

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

三、创建测试仓库,通过svn+ssh拉取代码

创建仓库:ssh_repo

svnadmin create /home/svn/repos/ssh_repo

配置拉取仓库的ssh通道

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

配置ssh代理的centos用户,开启ssh凭证认证

创建新的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 <ReposRootPath> --tunnel-user=<author>",no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding ssh-rsa <PublicKey> <Comment>
  • <ReposRootPath> 为仓库根路径
  • <author> 为之前设置的svn用户
  • <PublicKey> ssh生成的公钥

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== root@dsmp-2.3.1.novalocal

尝试拉取代码,以centos为例,不介绍TortoiseSVN使用

生成用户.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

(SVN+SSH)搭建SVN并使用SSH进行免密拉取推送代码相关推荐

  1. 解决Vscode每次连接ssh登入需要输入密码问题(免密登入)

    提示:解决Vscode每次连接ssh登入需要输入密码问题(免密登入) 文章目录 问题 一.解决方案 二.使用步骤 1.win10操作 参考文献 问题 可以看到每次登入,或者切换的时候都需要输入密码,很 ...

  2. idea java svn 设置_idea配置svn,随时拉取和上传代码的正确做法

    SVN在企业大型项目中,团队协作发挥的作用是非常巨大的.特别是很多特殊的项目,管理功能很强大.作为团队开发的一员,必须要完全掌握使用方法,才能高效撸代码. idea版本:2017.3 svn版本:1. ...

  3. 普罗米修斯监控系统_一步步教你用Prometheus搭建实时监控系统系列(二)——详细分析拉取和推送两种不同模式...

    前言 本系列着重介绍Prometheus以及如何用它和其周边的生态来搭建一套属于自己的实时监控告警平台. 本系列受众对象为初次接触Prometheus的用户,大神勿喷,偏重于操作和实战,但是重要的概念 ...

  4. 麒麟系统离线svn服务器搭建,SVN Server离线安装

    操作系统:Centos6.x(x86_64) #!/bin/bash # version APR_VERSION=apr-1.6.3 APR_UTIL_VERSION=apr-util-1.6.1 S ...

  5. ssh登录远程服务器_设置iTerm2免密登陆ssh远程服务器

    由于本人的日常工作原因,几乎所有时间都会在远程服务器工作,之前用的是Windows系统,使用xshell保存用户名和密码很方便,后来换了MacOS之后,虽然iTerm2很好用每次登陆都要自己输用户名和 ...

  6. svn拉取和提交代码

    拉取代码: svn checkout svn://192.168.63.1/DV2020T --username=yanqw --password=S9lmRmv 如果是第二次则可以直接 svn ch ...

  7. VSCODE使用技巧:解决每次推送代码都要输入用户名密码的繁琐过程(非ssh)

    通过https提交的git项目,每次提交都需要输入用户名和密码,这样就非常的麻烦,通过下面这条命令可以解决这个麻烦 打开项目目录,通过终端输入: git config --global credent ...

  8. GitHub SSH免密登录

    介绍 参考视频教程: https://www.bilibili.com/video/BV1vy4y1s7k6?p=26 1.查看是否配置免密登录 1.1已配置界面 以仓库git-csdn为例 我里面有 ...

  9. 使用docker镜像搭建svn+Apache环境

    2019独角兽企业重金招聘Python工程师标准>>> 环境准备 虚拟机装好之后,按照官网步骤检查虚拟机内核版本,必须在3.10以上版本,故此处安装redhat_7.2 # unam ...

最新文章

  1. 用OpenCV搭建活体检测器
  2. PyCharm开启或关闭科学模式
  3. 数字证书及网络加解密原理
  4. eBay是如何进行大数据集元数据发现的
  5. 回填用土好还是砂石料好_卫生间做回填好还是做架空好?这两者有哪些优缺点...
  6. EBPY0106是什么意思
  7. QT学习:认识QMainWindow
  8. hadoop中的filesystem和localfilesystem
  9. 演示IPFS的一个完整的流程以及针对部分概念的详解
  10. 十大司机如厕友好城市出炉:苏州/杭州/成都位居前三
  11. html音乐if代码如何使用,关于html:如何在带有JavaScript代码的if条件中使用函数方法?...
  12. 游戏外挂检测和反检测
  13. 实战 | 应急响应方法论思维导图
  14. 读书印记 - 《批判性思维工具》
  15. scratch作品_孩子的scratch作品只能演示?教你把它三步变为电脑软件
  16. vue中使用kindeditor编辑器_vue集成kindeditor富文本
  17. Cholesky Decomposition (Cholesky分解)
  18. 使用Travis CI进行在线build
  19. 软件系统分析模型文档
  20. Wordpress安装搭建windows

热门文章

  1. 公网IP与私网IP区别
  2. Eclipse开发工具的基本介绍及使用
  3. Project*** is not configured as a MyEclipse Web-Struts Project. Therefore the MyEclipse Struts
  4. python适合做网站吗_怎么用python做网站
  5. EventBus、Rxjava、RxBus的定义、作用、使用方式及区别
  6. Vue - 本地上传 Excel 文件页面表格预览(配合 ElementUI / 带分页)
  7. 美国服务器如何抵御黑客攻击
  8. Embedding原理到实战
  9. MATLAB数据类型——浮点数
  10. 总是封群怎么解决_我的群被封了怎么办