Linux海外VPS搭建私有Git仓库:Gitolite安装与权限配置指南

前期准备:确保环境就绪
搭建前需确认两个核心条件:首先是拥有一台Linux海外VPS,系统推荐Ubuntu 20.04或CentOS 7以上版本(兼容性更佳);其次要确保VPS已安装Git。检查Git是否安装可执行命令:
git --version
若未安装,Ubuntu用户执行:
sudo apt-get update && sudo apt-get install git -y
CentOS用户则用:
sudo yum install git -y
Gitolite安装:从用户创建到初始化
为保证安全性,建议创建独立系统用户管理Git仓库。以用户名为"git"为例,执行:
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
这里解释关键参数:--system创建系统用户(不参与日常登录),--disabled-password禁用密码登录(强制通过SSH密钥认证),提升仓库安全性。
接下来需将本地SSH公钥(通常位于~/.ssh/id_rsa.pub)上传至VPS。假设VPS登录用户为"root",IP为"123.45.67.89",执行:
scp ~/.ssh/id_rsa.pub root@123.45.67.89:/tmp/
登录VPS后,将公钥转移至git用户家目录并调整权限:
sudo cp /tmp/id_rsa.pub /home/git/ && sudo chown git:git /home/git/id_rsa.pub
切换至git用户并安装Gitolite:
sudo su - git
git clone https://github.com/sitaramc/gitolite
mkdir -p ~/bin && gitolite/install -ln ~/bin
bin/gitolite setup -pk id_rsa.pub
最后一步初始化会自动创建管理仓库"gitolite-admin",这是后续权限配置的核心。
权限配置:通过管理仓库精准控制
在本地终端克隆管理仓库(替换VPS IP):
git clone git@123.45.67.89:gitolite-admin
仓库目录结构中,"conf/gitolite.conf"是权限配置文件,"keydir"存放各用户公钥(文件名即用户标识)。
以创建"project-alpha"仓库并设置权限为例,编辑gitolite.conf:
repo project-alpha
RW+ = admin # admin用户拥有读写+删除权限
R = dev # dev用户仅读权限
RW = tester # tester用户可读写(不可删除)
这里的权限标记说明:
- R:只读
- RW:读写(无法删除分支/标签)
- RW+:读写+删除(需谨慎分配)
配置完成后提交并推送:
git add conf/gitolite.conf
git commit -m "Add project-alpha with permissions"
git push
验证使用:确认权限生效
测试admin用户权限:用admin公钥克隆仓库并尝试提交修改,应能正常推送;使用dev公钥克隆时,若尝试提交会收到"权限拒绝"提示,说明配置生效。
实际协作中常见场景:新增成员时,只需将其公钥放入keydir目录(文件名建议用"username.pub"),然后在gitolite.conf中添加对应权限规则,推送后立即生效,无需重启服务。
通过这套流程,你已在Linux海外VPS上搭建起安全可控的私有Git仓库。无论是小团队代码协作还是个人项目版本管理,Gitolite都能通过精细的权限控制,让代码管理更高效、更安心。