A. 安装程序文件
sudo yum install git python-setuptools
cd /opt
sudo git clone https://github.com/res0nat0r/gitosis.git
cd gitosis/
sudo python setup.py install
B. 添加git用户
注意,git用户不要设置密码,使之不能登录。
sudo adduser -m git www.zhishiwu.com
创建git用户成功后,以后登录git用户需要首先登录root帐号,再su – git。
C. 在客户端生成公钥私钥对
客户端机器上首先需要安装Git客户端、TortoiseGit(以Windows为例),
首先需要通过Git Bash生成公钥私钥对(需要输入的参数都留空):
ssh-keygen
这个命令会在当前用户目录下的.ssh目录生成id_rsa和id_rsa.pub两个文件,
为了能让TortoiseGit使用私钥,还需要用TortoiseGit的Puttygen工具基于id_rsa文件生成putty的私钥,
然后保存成.ppk文件:
D. 初始化gitosis环境
首先需要将生成的公钥上传到服务器,打开id_rsa.pub文件,看内容最后的用户名是什么,
比如我生成的.pub文件是这样的:
ssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEAzX7//rMabzT5CUGdX+oiEq3k3el56yanqcwtpIfQYVJ09pu/
1Se2zLCQBVjav10a3bsURoNWE/kqC6znBDtaC5wl8MdhT8hW5+YpMHT0ub6G3UkYJLD4vW7z+J/
ziFazSTJEpn/YAALj8tlr880ho8bu+CTUdV0bPrFDngbUakjKTPH4l/vLLYdirrQ1uh/
FmZOUWBLr8+JbbFYUZ3SKyID1reS5ekf+7H5w+R0qGJPLeXVzdyKPWY/KHFc/
t0nWKxKAZY0cNgdXgjlgZCqEI2+yrtEw+SyBaSz9bx2XwoSkDK0Z2As+
68RslrYNOhkpvn5XkWhdIHc3H2N6mIzP2w==wuyf@WUYFWIN
因此改名公钥文件名为wuyf@WUYFWIN.pub,并将其上传到服务器,比如/tmp目录,
然后使用这个用户初始化gitosis:
sudo -H -u git gitosis-init </tmp/wuyf/@WUYFWIN.pub
这个时候在git主目录的repositories目录下,已经初始化了用以管理git帐号的gitosis-admin仓库。 www.zhishiwu.com
E. 克隆gitosis-admin仓库并配置
现在可以把gitosis-admin仓库克隆到本机,并进行配置,注意,在TortoiseGit客户端中
需要加载上面生成的ppk格式的私钥:
如果要添加其它用户,在其它用户机器上执行上面的《C在客户端生成公钥私钥对》步骤,
并且把.pub公钥添加到gitosis-admin仓库的keydir目录下,同时在gitosis.conf文件中
为其配置其相应的group。下面是一个gitosis.conf的示例配置:
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = wuyf@WUYFWIN
[group test]
writable = maventestcitest
members = wuyf@WUYFWIN xxx@YYY
F. 创建其它新仓库
使用root用户远程登录服务器,并切换到git用户:
su - www.zhishiwu.com
su - git
cd ~/repositories
mkdir test.git
cd test.git
git init --bare
下面就可以在客户机器上克隆这个仓库并使用了,仓库地址如下:
git@git_server_name:repository_name.git
其中git_server_name为git服务器的机器名或IP,repository_name是指定的仓库名。
作者 warrenwyf