用 gitolite搭建git server实现权限控制(1)

本文详细介绍了如何在服务器上安装并配置Gitolite,包括创建管理用户、生成SSH密钥对、设置公钥、安装Gitolite及初始化仓库等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转:http://blog.sina.com.cn/s/blog_4b5039210102e3r3.html

Gitolite其实也是一个git repository,首先在server上安装好后,在client上把server上的repository clone下来,在本地做一些更改,再push回server,server端的hooks会根据push上来的配置来更新权限。

1. 在git server创建一个专有用户,用于管理git,所有git用户都将使用次用户访问git server。

$ useradd git

2. 管理员需要在本地自己机器(要做git管理的用户机器)上创建SSH公钥/私钥对。

$ ssh-keygen -f ~/.ssh/git-admin

!!!注意千万不要运行下面的命令将 .ssh/git-admin.pub 公钥文件追加到远程主机 server  user 主目录下的.ssh/authorized_keys 文件中

$ ssh-copy-id -i .ssh/git-admin.pub git@10.0.0.1 


为了方便管理和不至于和其他公钥私钥混淆,先配置下SSH客户端的文件 ~/.ssh/config,

可以通过创建主机别名,在连接主机时,使用特定的公钥。例如 ~/.ssh/config 文件中的下列配置:
host git-server
   user git
   hostname 10.0.0.1
   port 22
   identityfile ~/.ssh/git-admin


3 在服务器上安装gitolite

(1) 首先把管理员的公钥copy到服务器上,

scp .ssh/git-admin.pub git-server:/tmp/admin.pub

(2) 下载gitolite

在git的用户目录下运行
git clone https://github.com/sitaramc/gitolite

(3) 安装

[git@git-server ~]$ mkdir bin

运行    
[git@git-server ~]$ gitolite/install -ln
[git@git-server ~]$ 
[git@git-server ~]$ ls
bin   gitolite
[git@git-server ~]$ cd bin
[git@git-server bin]$ ls
gitolite

会在bin下生成一个gitolite可执行文件
运行:
[git@git-server bin]$ gitolite setup -pk /tmp/admin.pub 
Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/
Initialized empty Git repository in /home/git/repositories/testing.git/

此命令会在你的~/repositories/目录生成两个repository:gitolite-admin.git和testing.git
[git@git-server ~]$ cd repositories/
[git@git-server repositories]$ ls
gitolite-admin.git   testing.git
[git@git-server repositories]$ cd ..

用户目录下生成一个project.list,默认里面有一个testing的git的project
[git@git-server ~]$ more projects.list 
testing.git
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值