zoukankan      html  css  js  c++  java
  • Centos 7 搭建git服务器及使用gitolite控制权限

    一、安装git

    yum install git
    git --version #查看git版本 

    二、升级git(可选,如果之前已经安装git,需要升级git到最新版本)

    git clone https://github.com/iuscommunity/automation-examples  
    cd automation-examples/  
    git checkout bash  
    sudo ./enable-ius.sh  
    sudo yum swap git git2u  

    三、添加并切换到git账户

    useradd git
    su git

    四、生成git账户对应的RSA密钥用于管理仓库

    ssh -keygen -t rsa #一路回车,默认生成密钥位置为/home/git/.ssh目录
    cd /home/git/.ssh
    mv id_rsa.pub admin.pub #将生成的公钥文件改名为admin.pub

    五、安装gitolite

    cd /home/git
    git clone git://github.com/sitaramc/gitolite
    mkdir -p $HOME/bin
    gitolite/install -to $HOME/bin
    如果安装报错,则根据提示安装相应的依赖后重新(gitolite/install -to $HOME/bin)

    六、配置gitolite

    cd /home/git/.ssh
    $HOME/bin/gitolite setup -pk admin.pub
    完成后
    cd /home/git
    ls
    可以看到多了一个repositories文件夹,打开repositories可以看到两个仓库gitolite-admin.git和test.git
    看名称就知道干什么用的;下面我们主要对gitolite-admin.git仓库进行操作,就可以管理服务器上的全部仓库了。

    七、管理用户权限及仓库

    cd /home/git
    git clone git@服务器IP:gitolite-admin
    完成后cd到clone下来的gitolite-admin目录中,可以看到conf、keydir
    keydir目录就是用来放所有客户端用户的pub文件的
    conf目录就是用来配置仓库、用户、用户组权限的
    cd conf
    vim gitolite.conf
    可以看到以下配置信息:
    repo gitolite-admin
    RW+     =   admin
    repo testing
    RW+     =   @all
    
    创建用户组
    @组名 = admin lisi zhangsan 与keydir中的公钥名相同
    创建仓库
    repo demo(即仓库名/项目名)
    配置权限
    RW+ = @用户组/用户名 多个空格隔开
    提交更新
    cd /home/git/gitolite-admin
    git add .
    git commit -am 'update msg'
    git push origin master(首次需要根据提示配置email、name)
    【以后每次新增仓库、修改权限、更新用户、用户组都得在这个clone的项目下conf中配置然后push到仓库服务器,用户的pub文件上传至keydir目录即可,以用户名命名好区分】
    push完后可以看到/home/git/repositories新创建的仓库

    八、客户端生成公钥发送管理员

    windows下:
    某一文件夹下鼠标右键,Git Bash Here
    输入ssh -keygen -t rsa
    一路回车生成密钥对
    默认C:UsersAdministrator.ssh下id_rsa.pub
    更改名称,比如:id_rsa.pub然后发送给管理员,管理员上传至gitolite-admin下的keydir目录,conf下的gitolite.conf配置用户权限,需要跟pub文件名称保持一致,然后add commit push

    九、客户端克隆项目验证权限是否成功

    git bash方式:直接git clone git@服务器IP:项目.git即可
    TortoiseGit方式:
    需要配置密钥信息,否则会提示权限错误
    1、打开TortoiseGit安装目录下的bin目录,打开puttygen.exe,点击load
    选择之前生成的私钥,然后点击”save private key“保存成ppk文件。
    2、打开TortoiseGit的Settings,点击左侧Git,然后点击右面板的全局配置
    设置name为刚刚修改发给管理员的名称,点击保存。
    3、系统菜单栏中点击TortoiseGit目录下的Pageant,右下角多出一个图标,点击图标,点击add key选择刚刚保存的ppk文件关闭窗口即可
    4、clone项目(url:git@IP:项目名.git)也可在TortoiseGit的clone面板操作步骤3,有个load Putty Key
  • 相关阅读:
    matlab cell
    matlab linux 快捷键设置——有问题还是要解决
    latex 小结
    TOJ 1258 Very Simple Counting
    TOJ 2888 Pearls
    HDU 1248 寒冰王座
    TOJ 3486 Divisibility
    TOJ 3635 过山车
    TOJ 1840 Jack Straws
    HDU 4460 Friend Chains
  • 原文地址:https://www.cnblogs.com/itsharehome/p/8824668.html
Copyright © 2011-2022 走看看