gitolite搭建
简单流程
<!--添加用户-->
useradd git
useradd gitadmin
su git
<!--下载gitolite-->
mkdir -p $HOME/bin
git clone https://github.com/sitaramc/gitolite
gitolite/install -to $HOME/bin
<!--生成管理员的证书-->
su gitadmin
cd
ssh-keygen
cp .ssh/id_rsa.pub /tmp/
<!--设置管理员-->
su git
cd
gitolite setup -pk /tmp/id_rsa.pub
<!--管理您的gitolite安装-->
su gitadmin
cd
git clone git@localhost:gitolite-admin
详细流程
安装git
yum install git
添加git用户(linux添加用户)
具体参考linux用户详解
useradd git 用来管理仓库
useradd gitadmin 用来管理授权
<!--如果存在就删除-->
userdel -rf git
userdel -rf gitadmin
准备ssh密钥
> SSH是SecureShell的缩写,是一种专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH协议可以有效防止远程管理过程中的信息泄露问题。
SSH传输的过程如下:
(1)远程主机收到用户的登录请求,把自己的公钥发给用户。
(2)用户使用这个公钥,将登录密码加密后,发送回来。
(3)远程主机用自己的私钥,解密登录密码,如果密码正确,允许用户登录。
ssh-keygen -f ~/.ssh/test_rsa //其他参数参考文档 -N '密码' -t rsa (加密算法)
安装gitolite
安装依赖perl cpan (perl一种语言,最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN)
所以安装的用处主要是解决一些正则表达式的(我们在linux中用到正则的时候就需要安装)。
mkdir -p $HOME/bin
git clone https://github.com/sitaramc/gitolite
gitolite/install -to $HOME/bin
对于首次设置,您需要准备好公用密钥文件(通常来自管理员的工作站)。如果主gitolite管理员的用户名是“alice”,则应将该文件命名为“alice.pub”并将其复制到服务器。
<!--建议管理员从新创建一个用户-->
<!--gitadmin这个用户生成秘钥-->
ssh-keygen
<!--把私钥移动到tmp目录下(复制到服务器)-->
<!--一旦完成,执行下面-->
gitolite setup -pk gitadmin.pub
<!--在gitadmin家目录-->
git clone git@host:gitolite-admin
创建仓库
vi gitolite.conf
<!--添加仓库添加权限-->
repo lsmt
RW+ = @all
<!--本地秘钥上传服务器-->
scp shuo.mac.pub root@180.76.100.246:/home/gitadmin/gitolite-admin/keydir
...
git push
su git && cd repositories/
会发现有下面的目录,表示创建成功
lsmt.git
git clone git@ip地址:仓库名
<!--不管是服务器上的用户还是远程的用户只要有证书在才可以clone代码-->
<!--clone代码失败,一般都是权限问题。检查是否在目录中-->