参考文档:Git 文档
一 搭建服务器
远程仓库与本地仓库概念完全相同。
安装 git:
sudo apt-get install git
可以创建一个用来运行 git 服务的用户:
sudo adduser git
将需要登陆的用户公钥(id_rsa.pub 文件)导入
/home/git/.ssh/authorized_keys
,一行一个。新建一个文件夹作为仓库,服务器上的通常都以 .git 结尾,在此文件夹内命令:
1
2
3
4
5# 创建一个裸仓库
sudo git init --bare example.git
# 修改仓库 example.git 目录所属用户为 git,用户组为 git。
sudo chown -R git:git example.git创建的 git 用户不允许登陆 shell:修改
/etc/passwd
1
2
3
4
5将
git:x:1001:1001:,,,:/home/git:/bin/bash
改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell补充:克隆仓库
git clone git@server:/srv/example.git
。
二 公钥管理、权限控制
Gitosis 是一套用来管理 authorized_keys 文件和实现简单连接限制的脚本。
管理一个特殊的 Git 仓库,在这个特殊仓库内做好相应的设定,然后推送到服务器上,Gitosis 就会随之改变运行策略。