【参考 http://www.jiangmiao.org/blog/1600.html 】
1. 软件安装
sudo apt-get install python-setuptools git gitosis openssh-server
有的发布版没有 gitosis, 可以 git clone https://github.com/tv42/gitosis.git
2. 添加 GIT 管理用户
sudo adduser \ --system \ --shell /bin/sh \ --gecos 'git version control' \ --group \ --disabled-password \ --home /home/git \ git
sudo -H -u git ssh-keygen -t rsa
3. Gitosis 初始化
sudo -H -u git chmod o+rx /home/git/.ssh
sudo -H -u git gitosis-init < /home/git/.ssh/id_rsa.pub
4. 验证安装
sudo su git
cd ~
git clone 127.0.0.1:gitosis-admin.git
成功会出现打印 Receiving objects: 100% (5/5), done.
然后对 post-update 加执行权限
sudo chmod +x repositories/gitosis-admin.git/hooks/post-update
注意默认的 GIT 库放置于 $HOME/repositories 其他路径可以使用链接
5. 服务器调整
编辑 /etc/ssh/sshd_config,在最后加上
Match User git PasswordAuthentication no
接着重启 ssh 服务
/etc/init.d/ssh restart
6. 添加用户
用户
ssh-keygen -t rsa
然后将 ~/.ssh/id_rsa.pub 复制给管理员,管理员操作
cp id_rsa.pub /home/git/gitosis-admin/keydir/username.pub
编辑 /home/git/gitosis-admin/gitosis.conf 加用户权限
cd /home/git/gitosis-admin/
git add keydir/username.pub
git add gitosis.conf
git commit
git push
用户使用命令 git clone git@<ip_addr>:<repository> 进行代码下载
注意: 在以上安装过程中需要调试的话,也可以在 gitosis.conf 中 [gitosis] 小节中写上
loglevel = DEBUG