您的位置:首页 > 其它

git通过gitosis来管理权限(三)

2015-11-03 18:38 381 查看
首先,git服务器的安装参见

/article/8915440.html

这篇文章的一小节。

开始安装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'


重启系统,重新生成秘钥对来解决。参见文章:

/article/8915442.html

启动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配置完成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: