CentOS6.5配置git+gitolite服务器andWindows客户端配置
发布时间:2024-11-28
发布时间:2024-11-28
CentOS6.5配置git+gitolite服务器 and Windows客户端配置
CentOS6.5配置git+gitolite服务器
andWindows客户端配置
一、 安装git
1. # yum update
# yum install curl-devel expat-devel
openssl-devel zlib-devel perl-devel gettext-devel # mkdir -p /data/git
# groupadd git
# useradd -g git -d /data/git -s /bin/bash git
# passwd git //设置git用户密码
2.改变git目录权限
# chown -R git:git /data/git
# chmod -R 2755 /data/git
3.下载git
$ wget https://http:///pub/software/scm/git/git-2.6.2.tar.gz $ tar -xzvf git-1.7.2.3,tar.gz
$ cd git-1.7.2.3
$ ./configure --with-curl=/usr/local
$ make && make install
$ ln -s /usr/local/git/bin/* /usr/bin/
$ git --version #查看版本号,确实git是否安装成功
二、 安装gitolite
CentOS6.5配置git+gitolite服务器 and Windows客户端配置
# su – git
$ pwd
/data/git
$ mkdir bin
$ ls
$git clone https://http:///sitaramc/gitolite.git
或者git clone git://http:///ossxp-com/gitolite.git $ ls
bin gitolite
$./gitolite/install --to /home/git/bin/
$ ls bin/
commands gitolite gitolite-shell lib syntactic-sugar triggers VERSION VREF
三、 客户端生成密钥对,为gitolite配置管理员
1.Windows安装git for windows2.6.2,安装完后打开Git Bash
$ ssh-keygen –f admin –C 20151030@http://
$ scp admin.pub git@123.203.252.99:/tmp/admin.pub
2. 切换到git用户,为gitolite配置管理员
$ bin/gitolite setup -pk /tmp/admin.pub
Initialized empty Git repository in /home/git/repositories/gitolite-admin.git
CentOS6.5配置git+gitolite服务器 and Windows客户端配置
/Initialized empty Git repository in /home/git/repositories/te
sting.git/
WARNING: /home/git/.ssh missing; creating a new one
(this is normal on a brand new install)
WARNING: /home/git/.ssh/authorized_keys missing; creatin
g a new one
(this is normal on a brand new install)
$ ls
bin gitolite projects.list repositories
四、 服务器ssh开启公钥登录
1. vim /etc/ssh/sshd_config,将下面几句前面的#号去掉 RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
AuthorizedKeysCommand none
AuthorizedKeysCommandRunAs nobody
2.重启ssh
service sshd restart
五、 配置gitolite,添加用户,添加库,用户权限管理
1. windows安装TortoiseGit
2. 新建git文件夹,进入,右键 Git Clone…
URL:git@123.203.252.99:gitolite-admin.git
CentOS6.5配置git+gitolite服务器 and Windows客户端配置
勾选Load Putty Key,选择你的私钥(此处需使用ppk格式私
钥,可以使用puttygen将私钥admin转换成admin.ppk) 点击OK即可clone服务器上的gitolite-admin文件夹
到本地
3. 添加用户
管理员将其他用户的公钥(如dong.pub)复制到gitolite-admin/keydir/下
4. 添加库
进入gitolite-admin/conf/,右键 Git Bash Here, $ vim gitolite.conf (此文件用于添加库和配置用户对库的权限)
repo gitolite-admin
RW+ = admin
repo testing
RW+ = @all
repo git-dong#新建库git-dong
RW+ = admin dong#设置用户admin dong有读写权限 将修改push到服务器,即可添加库和用户。
$ cd ..
$ git status #查看git库状态
$ git add keydir/dong.pub conf/gitolite.conf 或者git add .
CentOS6.5配置git+gitolite服务器 and Windows客户端配置
$ git commit –m “add repo git-admin;add user dong” 进入gitolite-admin文件夹,右键 TortoiseGit Push 点击OK即可。
5. 用户权限管理
在客户端clone gitolite-admin.git,编辑gitolite-admin/conf/gitolite.conf配置各用户权限。
1 @team1 = zc
2 @team2 = aws zc
3 repo gitolite-admin
4 RW+ = admin
5
6 repo ossxp/.+
7 C = admin
8 RW = @all
9
10 repo testing
11 RW+ = admin
12 RW master = junio
13 RW+ pu = junio
14 RW cogito$ = pasky
15 RW bw/ = linus
16 - = somebody
17 RW tmp/ = @all
18 RW refs/tags/v[0-9] = junio
在上面的示例中,我们演示了很多授权指令。 第1行,定义了用户组 @admin,包含两个用户 jiangxin 和 wangsheng。
第3-4行,定义了版本库 gitolite-admin。并指定只有用户 jiangxin 才能够访问,并拥有读(R)写(W)和强制更新(+)的权限。
第6行,通过正则表达式定义了一组版本库,即
CentOS6.5配置git+gitolite服务器 and Windows客户端配置
在 ossxp/ 目录下的所有版本库。
第7行,用户组 @admin 中的用户,可以在 ossxp/ 目录下创建版本库。
创建版本库的用户,具有对版本库操作的所有权限。
第8行,所有用户都可以读写 ossxp 目录下的版本库,但不能强制更新。
第9行开始,定义的 testing 版本库授权使用了引用授权语法。
第11行,用户组 @admin 对所有的分支和里程碑拥有读写、重置、添加和删除的授权。
第12行,用户 junio 可以读写 master 分支。(还包括名字以 master 开头的其他分支,如果有的话)。
第13行,用户 junio 可以读写、强制更新、创建以及删除 pu 开头的分支。
第14行,用户 pasky 可以读写 cogito 分支。 (仅此分支,精确匹配)。