为什么需要自建Git服务器
使用公有云平台虽然开箱即用,但企业级项目往往涉及核心资产保护与内网高速同步。自建Git服务器能让你完全掌控数据流向,支持细粒度权限分配,同时在内网环境下拉取大体积依赖库的速度呈指数级提升。本教程摒弃复杂的企业级中间件,采用原生Git加SSH架构,适合个人开发者、小型研发团队快速落地私有化代码托管方案。
第一步:准备服务器基础环境
选用一台搭载Ubuntu 22.04或CentOS 8的轻量云服务器或本地Linux虚拟机。确保系统拥有sudo权限,且网络连通性正常。登录终端后先执行系统包更新,避免因旧版依赖导致后续工具链冲突。建议提前放行22号SSH端口,若使用云厂商控制台需在安全组规则中放行入站流量。保持当前会话不中断,所有操作均基于标准Linux命令行完成,无需额外图形界面支撑。
第二步:安装Git核心组件与服务
服务器端主要依赖Git内核与SSH服务。Ubuntu用户依次运行apt update和apt install git-core openssh-server命令。CentOS用户执行yum install git-core openssh-server httpd-tools。安装完毕后键入git version核对输出结果,确认版本号匹配当前系统架构。此时服务器已具备版本控制底座,下一步是划分独立运行空间,避免与系统文件混杂。
第三步:创建专用账户与裸仓库目录
安全规范明确要求禁用root直连托管。新建名为gitadmin的系统用户并设定高强度密码。在根目录下划出统一代码挂载点,例如/var/git-data。进入该路径后执行git init --bare project-alpha初始化第一个裸仓库。裸仓库不包含源码工作区,仅保留版本索引与对象数据库,是服务端标准形态。使用chown与chmod命令将目录归属权移交gitadmin,并设置755权限,防止后续推送时报Permission denied错误。
第四步:配置SSH密钥认证通道
放弃密码登录改用公钥体系是团队协作的必经之路。在本地电脑终端执行ssh-keygen -t ed25519一路回车生成密钥对,将生成的公钥内容完整复制到服务器的/home/gitadmin/.ssh/authorized_keys末尾。务必在服务器端执行chmod 700 ~/.ssh和chmod 600 ~/.ssh/authorized_keys,SSH守护进程对权限极其敏感,宽松设置会直接拦截连接。配置生效后,本地输入ssh gitadmin@服务器IP验证登录状态,出现欢迎语即代表隧道打通。
第五步:客户端接入与日常流转
开发人员本地安装对应Git版本后,先通过git config --global user.name和user.email绑定身份标识。使用git clone gitadmin@服务器IP:/var/git-data/project-alpha拉取初始副本。日常开发遵循add、commit、push标准三步曲。为保障主干稳定性,可在服务器端启用protected-branches钩子,拦截非授权分支合并操作。新成员加入时只需将本地公钥追加至authorized_keys,无需重启服务或修改路由表,实现无缝扩容。
运维规范与安全加固建议
数据持久化是底线要求。建议编写定时任务每周打包/var/git-data目录并异地同步,保留至少三个历史快照。定期清理闲置公钥与过期账号,收敛攻击面。若团队规模扩大,可引入Gitolite或Gitea等开源面板接管Web界面与权限矩阵,底层依然沿用本教程建立的SSH+裸仓库架构。保持系统补丁更新,监控磁盘I/O与内存占用,按此路线搭建的私有Git服务器可稳定承载百人以上团队的日常研发流转。



