码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • (SVN+SSH)搭建SVN并使用SSH进行免密拉取推送代码


    【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
    
    • 1
    • 2
    • 3

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

    定义svn仓库文件位置

    vim /etc/sysconfig/svnserve
    
    • 1

    在这里插入图片描述

    创建仓库:acc_repo

    svnadmin create /home/svn/repos/acc_repo
    
    • 1

    配置拉取仓库的账号密码

    cd /home/svn/repos/acc_repo/conf/
    
    • 1

    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]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    cat authz

    [aliases]
    
    # 用户组
    [groups]
    admin = admin
    
    #用户组所对应的目录
    [/]
    @admin = rw
    
    #用户组权限
    *=r
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    cat passwd

    [users]
    admin = 123456
    
    • 1
    • 2

    通过账号密码拉取代码

    svn co svn://192.168.140.12/acc_repo --username admin
    
    • 1

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

    创建仓库:ssh_repo

    svnadmin create /home/svn/repos/ssh_repo
    
    • 1

    配置拉取仓库的ssh通道

    cat svnserve.conf

    [general]
    # 匿名访问的权限 可以是read、write,none,默认为read
    anon-access = none
    # 使授权用户有写权限
    auth-access = write
    # 访问控制文件
    authz-db = authz
    
    [sasl]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    cat authz(注意:此处设置的用户将用作ssh通道中指定svn的用户)

    [aliases]
    
    # 用户组
    [groups]
    
    #用户组所对应的目录
    [test:/]
    svnuser = rw
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

    创建新的centos用户:svn_ssh

    useradd svn_ssh
    passwd svn_ssh
    
    • 1
    • 2

    生成一个ssh密钥对,用作ssh登录凭证

    ssh-keygen -t rsa -b 1024 -f svnuser.key
    
    • 1

    将生产的公钥放置svn_ssh用户下的authorized_keys(/etc/ssh/sshd_config中的默认公钥文件就是authorized_keys)

    mkdir -p /home/svn_ssh/.ssh
    
    • 1

    设置 authorized_keys 格式如下

    command="svnserve -t -r  --tunnel-user=",no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding ssh-rsa  
    
    • 1
    • 为仓库根路径
    • 为之前设置的svn用户
    • 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
    
    • 1

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

    生成用户.subversion目录

    svn co 
    
    • 1

    设置svn ssh拉取代码制定的key文件(需要将之前生成的私钥拷贝过来)

    vim ~/.subversion/config

    在[tunnels] 下面添加配置
    ssh = /usr/bin/ssh -l svn -i /root/.subversion/svnuser.key
    
    • 1
    • 2

    拉取代码

    svn co svn+ssh://192.168.140.12/ssh_repo
    
    • 1
  • 相关阅读:
    windows下flume配置不成功
    力扣1、两数之和
    c++操作mysql(详解)
    Windows自动挂载smb/nfs到本地
    1 Getting Started with Database Administration
    NC16422 图书管理员
    改bug问题
    分布式事务协调中间件---seata快速入门
    百分点科技|怎样做数据运营,才能让数据中台真正用起来?
    Python DCM转NRRD及NRRD转NII
  • 原文地址:https://blog.csdn.net/qq_39096058/article/details/127919511
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号