第一步,安装git
:
sudo apt-get install git
创建用户信息
git config --global user.name soft
第二步,创建一个git
用户,用来运行git
服务:
sudo adduser git
创建git仓库的存储目录、更改文件目录属主为代码仓库的管理者git,只让git用户对此目录有权限。
sudo mkdir /home/gitrepository
sudo chown git:git /home/gitrepository
sudo chmod 700 /home/gitrepository
默认状态下,gitosis会将git仓库放在 git用户的home下,所以我们做一个链接到/home /gitrepository
su git
ln -s /home/gitrepository /home/git/repositories
exit
第三步,创建证书登录:
方法1:
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub
文件,把所有公钥导入到/home/git/.ssh/authorized_keys
文件里,一行一个。
su git
mkdir -p /home/git/.ssh/
方法2:Gitosis管理公钥
gitosis依赖于python工具库,先安装python工具库
sudo apt-get install python-setuptools
下载及安装
cd ~
git clone https://github.com/tv42/gitosis.git
cd gitosis
sudo python2.7 setup.py install
在服务端生成管理库:
sudo chmod -R 777 /home/git
sudo -H -u git gitosis-init < /tmp/id_rsa.pub
sudo chmod -R 755 /home/git
报错处理:IOError: [Errno 13] Permission denied: '/home/git/.ssh/authorized_keys.10768.tmp'
将/home/git及/home/git/.ssh权限都赋值为755,gitrepository也给个755(不能给777,不然要用绝对地址git@ip:/home/gitrepository/project,且不能通过gitosis管理)
执行上面命令后生成目录:
设置post-update脚本权限:
测试git服务器
新建测试工程
在/home/git/repositories建立新工程test
sudo mkdir test.git
cd test.git
sudo git init --bare
cd ..
sudo chown -R git:git test.git/
gitosis-admin克隆到本地
git clone git@192.168.xxx.xxx:gitosis-admin
打开gitosis-admin/gitosis.conf, 添加test项目配置
上传gitosis-admin
测试拉下来test工程到本地
git clone git@192.168.xxx.xxx:test