在Git服务管理工具这个领域,常用的有两种,它们分别是 :
Gitosis - 轻量级, 开源项目,使用SSH公钥认证,只能做到库级的权限控制。目前项目已经停止开发,不再维护。
Gitolite - 轻量级,开源项目,使用SSH公钥认证,能做到分支级的权限控制。
当然我们用Gitolite了。
1.安装openssh
首先这里我们安装openssh-server openssh-client,不过运行一个这个命令不会有错的,如果有安装就会提示已安装。
$ sudo apt-get -y install openssh-server openssh-client
2.安装git
在这个核心软件,不可或缺。
$ sudo apt-get -y install git
3.添加一个git用户和用户组
添加gitolite用户和同名用户组,加上–system参数,用户就不会在登陆界面显示。
$ sudo adduser --system --shell /bin/sh --group --disabled-password --home /home/gitolite gitolite
4.生成ssh key
生成ssh key,一路回车下来。
$ ssh-keygen -t rsa
5.重命名ssh公钥
将你当前用户的ssh的.pub公钥复制到/tmp下备用,由于我用的是桌面版在同一台机器上:
$ cp ~/.ssh/id_rsa.pub /tmp/xiao.pub
如果你是客户端ssh远程登陆到服务器上安装,就要把你本地的key复制到远程的机器上:
$ scp ~/.ssh/id_rsa.pub gitolite.server:/tmp/xiao.pub
6.安装gitolite
在ubuntu中已经集成了,不用自己去下载。
$ sudo apt-get -y install gitolite
切换到gitolite用户环境中,因为我要以gitolite用户身份去初始化安装。
$ sudo su - gitolite
7.初始化安装gitolite
使用之前生成的.pub公钥,执行初始化安装gitolite。
$ gl-setup /tmp/xiao.pub
8.克隆管理库
把管理库gitolite-admin克隆过来就可以开始gitolite用户及代码库的管理了,如果不能克隆,那么就说明初始化的ssh pub key错了,如图就是成功了。
$ git clone ssh://gitolite@localhost/gitolite-admin.git
这时可以看到管理库gitolite-admin已经克隆成功了
打开可以看到两个文件夹:
- conf 权限管理文件夹
- keydir 是ssh的公钥key管理文件夹
上面的配置含义是:
定义两个用户组: xiao
和 所有用户
定义两个版本库: gitolite-admin
和testing
用户xiao
对这两个版本库有(读 写 删除)RW+ 权限
也可按照格式,添加多个组,多个版本库