凌峰创科服务平台

Ubuntu如何快速搭建Git服务器?

在Ubuntu系统上搭建Git服务器是企业级和个人项目中常用的版本控制解决方案,本文将详细介绍从环境准备到服务配置、安全设置及日常使用的完整流程,整个过程基于Ubuntu 20.04/22.04系统,通过Gitosis或GitLab两种主流方式实现,兼顾轻量级与功能丰富性需求。

Ubuntu如何快速搭建Git服务器?-图1
(图片来源网络,侵删)

环境准备与基础安装

首先更新系统并安装必要的软件包,打开终端执行以下命令:

sudo apt update && sudo apt upgrade -y
sudo apt install -y git openssh-server python3-pip

创建一个专用用户运行Git服务,增强安全性:

sudo adduser --system --shell /bin/bash --group git

配置SSH服务确保远程访问安全,编辑/etc/ssh/sshd_config文件,确保以下配置生效:

Port 22
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

重启SSH服务使配置生效:sudo systemctl restart sshd

Ubuntu如何快速搭建Git服务器?-图2
(图片来源网络,侵删)

使用Gitosis搭建轻量级Git服务器

Gitosis通过管理公钥实现多用户访问控制,适合中小型团队,首先安装Python依赖:

sudo pip3 install gitosis

初始化Gitosis仓库,在本地机器生成SSH密钥(若无):

ssh-keygen -t rsa -b 4096

将公钥上传至服务器:

scp ~/.ssh/id_rsa.pub user@server:/tmp/

在服务器上初始化Gitosis:

Ubuntu如何快速搭建Git服务器?-图3
(图片来源网络,侵删)
sudo -u git gitosis-init < /tmp/id_rsa.pub

设置仓库目录权限:

sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

克隆管理仓库到本地:

git clone git@server:gitosis-admin.git

编辑gitosis.conf文件添加新用户和仓库,

[group team]
writable = project1
members = user1@example.com user2@example.com

提交配置后推送到服务器,新仓库即可通过git clone git@server:project1.git访问。

使用GitLab搭建功能完整的Git服务器

GitLab提供Web界面、问题跟踪、CI/CD等企业级功能,更适合复杂项目管理,添加GitLab官方源并安装:

curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt install -y gitlab-ce

配置 external_url 为服务器域名或IP,编辑/etc/gitlab/gitlab.rb

external_url 'http://gitlab.example.com'

重新配置GitLab:

sudo gitlab-ctl reconfigure

首次访问需设置管理员密码(默认账号root),Web界面位于http://server-ip,创建项目时支持选择初始化模板,可通过SSH或HTTPS协议克隆,HTTPS需配置域名证书。

安全配置与日常维护

无论采用哪种方式,安全配置都是重点,以下是关键安全措施:

  1. 防火墙设置:仅开放必要端口,如SSH(22)和HTTP(80)
    sudo ufw allow 22/tcp
    sudo ufw allow 80/tcp
    sudo ufw enable
  2. 定期备份:GitLab可通过gitlab-backup工具备份,Gitosis需手动备份/home/git目录
  3. 日志监控:检查/var/log/gitlab(GitLab)或/var/log/auth.log(Gitosis)的异常访问

常见操作示例

以下表格总结了日常运维中的常用操作:

操作场景 Gitosis命令 GitLab操作
创建新仓库 编辑gitosis.conf添加[group]和writable Web界面→Projects→New Project
添加用户 收集公钥加入members列表 Admin Area→Users→New User
修改权限 编辑gitosis.conf更新members 项目Settings→Members
删除仓库 从gitosis.conf移除writable条目 项目Settings→Delete Project
查看日志 /var/log/auth.log Admin Area→Audit Events

相关问答FAQs

Q1: 如何解决Gitosis推送时"Permission denied (publickey)"错误?
A: 该问题通常由SSH公钥配置错误导致,需检查:①服务器~/.ssh/authorized_keys是否正确包含用户公钥;②Gitosis初始化时是否使用了正确的管理员公钥;③本地.ssh/config中主机配置是否指向服务器IP/域名,可通过ssh -vT git@server查看详细连接日志定位问题。

Q2: GitLab服务启动失败如何排查?
A: 首先检查sudo gitlab-ctl status查看各组件状态,常见解决步骤:①运行sudo gitlab-rake gitlab:check进行全面检查;②查看/var/log/gitlab/gitlab-rails/production.log定位具体错误;③确保服务器内存和磁盘空间充足(GitLab至少需4GB内存);④如配置文件修改过,执行sudo gitlab-ctl reconfigure重载配置,若仍无法解决,可查阅GitLab官方故障排查文档或提交issue。

分享:
扫描分享到社交APP
上一篇
下一篇