公司代码库用Git,全部用SSH认证,多个代码库多个用户,权限管理是个头疼的问题,今天终于有空测试下Gitolite,
Gitolite是在Git之上的一个授权层,依托sshd
或者httpd
来进行认证。(概括:认证是确定用户是谁,授权是决定该用户是否被允许做他想做的事情)。
Gitolite允许你定义访问许可而不只作用于仓库,而同样于仓库中的每个branch和tag name。你可以定义确切的人(或一组人)只能push特定的"refs"(或者branches或者tags)而不是其他人。
测试环境:
【Gitolite服务器】git代码库和Gitolite是同一台服务器。
【管理端】管理员管理Gitolite
【客户端】Git代码库使用者
安装Gitolite
首先各服务器都要安装git环境,
ubuntu: apt-get install git-core 或 apt-get install git centos: yum install git
Gitolite服务器
建gituser帐号,源代码仓库放在服务器的普通帐号下 root@gitserver# adduser --system --shell /bin/bash --group gituser root@gitserver# passwd gituser 用户gituser设定密码,在SSH公钥建立后可以把这个密码禁掉
管理端生成密钥
root@server# adduser gitadmin root@server# passwd gitadmin root@server#su - gitadmin gitadmin@server~$ssh-keygen -t rsa 这样就生成gitadmin的密钥 我们将gitadmin下的密钥拷贝到Gitolite的gituser用户下 gitadmin@server~$ssh-copy-id -i ~/.ssh/id_rsa.pub gituser@192.168.1.50 第一次传输要输入gituser的密码即可。当
本文转自 jackjiaxiong 51CTO博客,原文链接:
http://blog.51cto.com/xiangcun168/1703328