在Ubuntu上搭建git+gitolite server

2 篇文章 0 订阅
2 篇文章 0 订阅

  • 操作系统:

我在安装Ubuntu Server时就把Server类型定为OpenSSH Server,如果还没有安装ssh,需要手动执行安装命令:sudo apt-get install ssh

  • git:

安装非常简单,只需要执行命令:sudo apt-get install git即可。

第二步是给系统增加一个名为git的新用户,以后所有连接git server的client都会运行在这个受限用户的空间里

sudo adduser \

  --system \

  --shell /bin/bash \

  --gecos 'git version control' \

  --group \

  --disabled-password \

  --home /home/git \

  git

第三步,为git用户创建.ssh目录

$ su git

$ cd

$ mkdir .ssh

第四步,让developer将他们自己的公钥(public key)发给你,并加到/home/git/.ssh/authorized_keys文件中

$ cat /tmp/id_rsa.john.pub >> ˜/.ssh/authorized_keys
$ cat /tmp/id_rsa.josie.pub >> ˜/.ssh/authorized_keys
$ cat /tmp/id_rsa.jessica.pub >> ˜/.ssh/authorized_keys

如果还没有公钥,需要developer在本地运行ssh-keygen命令生成公钥/私钥对,缺省情况下保存在%home%/.ssh目录下,文件id_rsa为私钥, id_rsa.pub为公钥。

第五步,创建空的git repository

git init --bare my.git

第六步,项目组成员就可以从自己的电脑访问git server了,repository url: git@yourserver:path_of_my.git

  • gitolite:

如果对权限控制没有要求,那么上面的git server配置已经完成了。gitolite是加在git之上的权限控制工具,安装之后,我们可以将权限控制细化到repository甚至是branch级别。如果确定要安装gitolite,那么上面的git配置只要做到第二步就可以了,后面的步骤会有不同的配置,由gitolite自动完成。

gitolite的安装也很简单:sudo apt-get install gitolite

下面,我们要创建一个具有admin权限的初始用户,这个用户访问git server也需要ssh keys,现在就创建出来:

ssh-keygen -t rsa

cp ~/.ssh/id_rsa.pub /tmp/local.pub

之所以将新生成的公钥copy到tmp目录中,是因为后面的操作要以用户名为git的身份操作,该用户对root home没有访问权限。

第二步,初始化gitolite

sudo su git

echo "PATH=%HOME%/bin:$PATH" > ~/.bashrc

gl-setup /tmp/local.pub

exit

命令gl-setup会打开gitolite的配置文件,这时只要接受缺省配置并保存退出即可。

注:检查文件/home/git/.ssh/authorized_keys的权限,确保其owner和group都是git。

第三步,配置git权限

gitolite初始化会生成一个特别的git库,gitolite-admin.git,专门用于权限管理。

git clone git@localhost:gitolite-admin.git

cd gitolite-admin

此时可以看到两个目录,conf目录下唯一的文件gitolite.conf用来设定repository和branch的访问权限。

文件初始内容为:

repo gitolite-admin

RW+ = local

repo testing

RW+ = @all

现在我文件末尾加上下面两行:

repo csi

RW+ = @all

然后运行git命令commit, push之后,gitolite就会生成一个名为csi的git repository,且对所有人均可读写。这里的所有人是指公钥已经提交到gitolite-admin/keydir目录或其子目录下的用户。初始条件下,里面只有初始化gitolite时指定的local.pub。gitolite就会将新加的公钥文件添加到/home/git/.ssh/authorized_keys文件中。

以上配置完成后,用户就可以通过url: git@gitserver:csi.git访问git server了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值