环境:
1.centos6.7
2.git1.6.6+ perl5.8.8+ openssh5.0+
3.仓库用户,自加用户git
4.ssh没有免密钥的用户
git-server:192.168.50.108
git-client: 192.168.50.112
部署:
git-server:
准备:如果仓库代码较多或项目较多占用空间大,可以指定家目录为其他位置。
mkdir /usr/local/data/code -pv
useradd -d /usr/local/data/code git
1.使用git用户的环境操作,或修改git用户的shell切换后部署
sudo -u git
git clone https://github.com/sitaramc/gitolite.git
mkdir $HOME/bin
./gitolite/install -to $HOME/bin/
2.本机或其他机器生成管理密钥(此处用root作为管理员)
ssh-keygen -t rsa
cp /root/.ssh/id_rsa.pub /tmp/
mv /tmp/id_rsa.pub /tmp/admin.pub
3.配置gitolite的管理员信息
gitolite setup -pk /tmp/admin.pub
ls
logout
4.管理员使用工具git-server(统一工具管理,此处环境是在管理员root下操作,如果提示需要密码则操作是错误的。)
git clone [email protected]:gitolite-admin
5.创建库和添加用户,此处配置类似于svn(家目录默认两个仓库,如需配置自己的仓库需要初始化git init --bare /usr/local/data/code/repositories/another.git)
cd gitolite-admin/ && ls (conf和keydir两个目录)
注:conf记录用户的权限,keydir存放用户的pub公钥
添加test用户RW+权限
repo gitolite-admin
RW+ = admin
RW+ = test
6.本机或其他机器做ssh公钥,此处选择本机test用户,也可以是其他主机的test用户
[test@localhost ~]$ ssh-keygen
[test@localhost ~]$ scp .ssh/id_rsa.pub [email protected]:/tmp
7.保存test用户pub密钥
mv /tmp/id_rsa.pub keydir/test.pub
cat /home/git/.ssh/authorized_keys
8.修改后添加并push到远程
git add conf
git add keydir
git commit -m 'added foo,bob '
git push
9.测试
注:如要在其他电脑上管理server按如下操作,如果需要帮助可以ssh [email protected] help
git-client:
1.参照git-server第二步生成ssh密钥
2.参照git-server第三步添加管理员信息,再测
3.参照git-server第四步和第五步,第七,第八步配置信息
参考文档:https://github.com/sitaramc/gitolite