• gitolite搭建


    简单流程

    <!--添加用户-->
    useradd git
    useradd gitadmin
    su git
    
    <!--下载gitolite-->
    mkdir -p $HOME/bin   
    git clone https://github.com/sitaramc/gitolite
    gitolite/install -to $HOME/bin
    
    <!--生成管理员的证书-->
    su gitadmin
    cd 
    ssh-keygen
    cp .ssh/id_rsa.pub /tmp/
    
    <!--设置管理员-->
    su git
    cd 
    gitolite setup -pk /tmp/id_rsa.pub
    
    <!--管理您的gitolite安装-->
    su gitadmin
    cd
    git clone git@localhost:gitolite-admin
    
    
    
    
    

    详细流程

    安装git

    yum install git
    

    添加git用户(linux添加用户)

    具体参考linux用户详解

    useradd git        用来管理仓库
    useradd gitadmin   用来管理授权
    
    <!--如果存在就删除-->
    userdel -rf git
    userdel -rf gitadmin
    
    

    准备ssh密钥

    > SSH是SecureShell的缩写,是一种专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH协议可以有效防止远程管理过程中的信息泄露问题。
    

    SSH传输的过程如下:
    (1)远程主机收到用户的登录请求,把自己的公钥发给用户。
    (2)用户使用这个公钥,将登录密码加密后,发送回来。
    (3)远程主机用自己的私钥,解密登录密码,如果密码正确,允许用户登录。

    ssh-keygen -f ~/.ssh/test_rsa //其他参数参考文档 -N '密码' -t rsa (加密算法)

    安装gitolite

    安装依赖perl cpan (perl一种语言,最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN)
    所以安装的用处主要是解决一些正则表达式的(我们在linux中用到正则的时候就需要安装)。

    mkdir -p $HOME/bin   
    git clone https://github.com/sitaramc/gitolite
    gitolite/install -to $HOME/bin  
    
    

    对于首次设置,您需要准备好公用密钥文件(通常来自管理员的工作站)。如果主gitolite管理员的用户名是“alice”,则应将该文件命名为“alice.pub”并将其复制到服务器。

    <!--建议管理员从新创建一个用户-->
    <!--gitadmin这个用户生成秘钥-->
    ssh-keygen 
    <!--把私钥移动到tmp目录下(复制到服务器)-->
    <!--一旦完成,执行下面-->
    gitolite setup -pk gitadmin.pub
    
    <!--在gitadmin家目录-->
    git clone git@host:gitolite-admin
    
    

    创建仓库

    vi gitolite.conf
    
    <!--添加仓库添加权限-->
    repo lsmt
        RW+     =   @all
        
    <!--本地秘钥上传服务器-->
    scp shuo.mac.pub root@180.76.100.246:/home/gitadmin/gitolite-admin/keydir
    
    ...
    git push
    
    
    su git && cd repositories/
    会发现有下面的目录,表示创建成功
    lsmt.git
    
    git clone git@ip地址:仓库名
    <!--不管是服务器上的用户还是远程的用户只要有证书在才可以clone代码-->
    <!--clone代码失败,一般都是权限问题。检查是否在目录中-->
    

    相关文档

    https://github.com/sitaramc/gitolite

  • 相关阅读:
    php中运算符的分类及注意事项
    ecshopv3.6安装
    phpstudy多站点配置教程
    织梦dedecms出现DedeCMS Error: (PHP 5.3 and above) Please set 'request_order' ini value to i解决办法
    thinkphp3.2批量删除功能
    怎么使用阿里图标库
    人人网,微博,QQ空间,朋友圈,常用API调用实现方法
    ueditor注意事项
    大图在小于自身的div中,水平居中
    thinkphp3.2 实现分页功能
  • 原文地址:https://www.cnblogs.com/lengthuo/p/8946412.html
Copyright © 2020-2023  润新知