GitoLite在Ubuntu下的安装

环境

客户端:MacOS

服务端:阿里云Ubuntu

步骤

  1. 登陆服务器,添加git用户

    1
    sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/git git
  2. 安装GitoLite

    1
    2
    3
    4
    5
    6
    7
    8
    # 切换到git用户
    su - git
    # 从GitHub上下载最新源码
    git clone https://github.com/sitaramc/gitolite
    # 创建安装目录
    mkdir -p $HOME/bin
    # 安装
    gitolite/install -to $HOME/bin
  3. 生成管理员的公钥和私钥

    可选择在服务器上生成,这里直接在客户端上生成,方便我用Mac管理GitoLite

    1
    2
    # 输入路径和key名(一般在~/.ssh文件夹下) 然后通过lrzsz(或者其他手段)上传到服务器
    ssh-keygen -t rsa
  4. 设置该公钥为管理员公钥

    1
    2
    # 注意这里还是git用户输入的命令
    $HOME/bin/gitolite setup -pk ${YourName}.pub
  5. 在客户端下载用于管理GitoLite的库

    1
    git clone git@${YourHost}:gitolite-admin

    也可配置客户端的SSH的config,使登陆更方便

    1
    2
    3
    4
    5
    host ${YourShortcutName} # 配置的ssh简写,可随意取名,方便使用
    user git
    hostname ${YourHost} # GitoLite服务器地址
    port 22
    identityfile ~/.ssh/${YourName} #生成的公钥私钥对名
  6. 拉取管理库

    1
    2
    # @前面的git是用户名,gitolite-admin是管理库名字
    git clone git@${YourHost}:gitolite-admin.git
  7. 添加其他客户端

    1. 将其他客户端的放到gitolite-admin/keydir目录下

      1
      2
      3
      4
      # 和正常的git库一样的用法
      git add .
      git commit -m "add user"
      git push origin master
    2. 权限管理,按照官方文档编写gitolite-admin/conf/gitolite.conf文件,并按上述步骤提交

      1
      2
      3
      4
      5
      repo gitolite-admin
      RW+ = ${YourName}

      repo testing
      RW+ = @all

总结

ssh的key这个地方很麻烦,这方面不专业,错一步排查起来不熟练,导致我每次都是重新装。

参考

  1. sitaramc/gitolite - GitHub
  2. git - Ubuntu
  3. gitolite3的安装 - CSDN博客