首先,git服务器的安装参见
http://blog.csdn.net/lyhdream/article/details/49561645
这篇文章的一小节。
开始安装gitosis
一、首先安装python工具:
apt-get install python-setuptools
二、获取并安装gitosis:
进入/tmp目录(将要安装的gitosis文件克隆到该目录)
cd /tmp
安装gitosis:
git clone https://github.com/tv42/gitosis.git
cd gitosis
sudo python setup.py install
三、创建一个用户git:
adduser git
四、将该user添加到root组里(如果登录该用户可以执行sudo的话,可以省略该步骤)
执行:visudo
找到:
root ALL=(ALL:ALL) ALL
在下面添加一行:
git ALL=(ALL:ALL) ALL
五、添加git用户为仓库管理员:
su git
cd ~
mkdir .ssh
cd .ssh
ssh-keygen -t rsa
cp /home/git/.ssh/id_rsa.pub /tmp
sudo -H -u git gitosis-init < /tmp/id_rsa.pub
在上面一个步骤如果报类似以下的错误:
Traceback (most recent call last):
File "/usr/local/bin/gitosis-init", line 9, in <module>
load_entry_point('gitosis==0.2', 'console_scripts', 'gitosis-init')()
File "/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/app.py", line 24, in run
return app.main()
File "/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/app.py", line 38, in main
self.handle_args(parser, cfg, options, args)
File "/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/init.py", line 123, in
handle_args
user = ssh_extract_user(pubkey)
File "/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/init.py", line 39, in
ssh_extract_user
raise InsecureSSHKeyUsername(repr(user))
gitosis.init.InsecureSSHKeyUsername: Username contains not allowed characters: 'git@2f3c81d1dac3'
重启系统,重新生成秘钥对来解决。参见文章:
http://blog.csdn.net/lyhdream/article/details/49619805
启动Gitosis之后,会自动初始化gitosis-admin.git库文件
此时去/home/git/repositories下可以看到gitosis-admin.git库文件。
权限控制在gitosis.conf,公钥SSH Key文件放在/home/git/repositories/gitosis-admin.git/gitosis-export/keydir下,以后所有的客户端用户的公钥都放在这个文件下。
这样,当有新开发者加入项目的时候,将它生成的公钥放到/home/git/repositories/gitosis-admin.git/gitosis-export/keydir目录下,就拥有正常的代码推送权限了。
将git用户的公钥放到/home/git/repositories/gitosis-admin.git/gitosis-export/keydir目录下:
cp /home/git/.ssh/id_rsa.pub /home/git/repositories/gitosis-admin.git/gitosis-export/keydir
到此,gitosis配置完成