凌峰创科服务平台

阿里云Git服务器如何搭建?

阿里云Git服务器搭建是企业进行代码版本管理的重要实践,通过在云环境中部署Git服务,可以实现代码的安全存储、团队协作以及版本控制的高效管理,以下是详细的搭建步骤及相关配置说明,包括环境准备、服务安装、配置优化及安全加固等内容。

阿里云Git服务器如何搭建?-图1
(图片来源网络,侵删)

环境准备与基础配置

在开始搭建Git服务器前,需确保阿里云ECS实例满足基本要求:推荐使用CentOS 7.9或Ubuntu 20.04操作系统,配置至少2核4GB内存、40GB系统盘,并确保实例已绑定公网IP(用于后续远程访问),通过SSH登录ECS实例后,更新系统软件包列表并安装必要依赖:

# CentOS系统
sudo yum update -y
sudo yum install -y curl wget git policycoreutils-python openssh-server
# Ubuntu系统
sudo apt update && sudo apt upgrade -y
sudo apt install -y openssh-server git curl

安装完成后,启动SSH服务并设置开机自启:

sudo systemctl start sshd
sudo systemctl enable sshd

创建Git专用用户与仓库目录

为提升安全性,建议创建独立的Git用户用于仓库管理,避免使用root账户操作:

sudo useradd -m -s /bin/bash git
sudo passwd git  # 设置用户密码

创建Git仓库根目录,并修改权限:

阿里云Git服务器如何搭建?-图2
(图片来源网络,侵删)
sudo mkdir -p /data/git/repo
sudo chown -R git:git /data/git
sudo chmod 755 /data/git/repo

安装与配置Git服务

安装Git服务端组件

sudo yum install -y git-daemon  # CentOS
sudo apt install -y git-daemon-run  # Ubuntu

配置git-daemon服务

创建git-daemon配置文件/etc/sysconfig/git-daemon(CentOS)或/etc/default/git-daemon(Ubuntu),内容如下:

GIT_DAEMON_OPTIONS="--base-path=/data/git/repo --export-all --enable=receive-pack --user-path=git --reuseaddr"

参数说明:

  • --base-path:指定Git仓库根目录
  • --export-all:允许匿名访问所有仓库(生产环境建议关闭)
  • --enable=receive-pack:允许推送操作
  • --user-path:指定用户目录为git

启动并配置开机自启

sudo systemctl start git-daemon
sudo systemctl enable git-daemon

创建Git仓库与初始化项目

以创建project-demo仓库为例:

sudo su - git
cd /data/git/repo
mkdir project-demo.git
cd project-demo.git
git init --bare
exit

--bare参数表示创建裸仓库,不包含工作目录,适合作为中央服务器使用。

阿里云Git服务器如何搭建?-图3
(图片来源网络,侵删)

SSH免密访问配置(可选)

为团队成员配置SSH免密登录,需在ECS服务器上生成Git用户的SSH公钥,并将客户端公钥添加到~/.ssh/authorized_keys

sudo su - git
mkdir -p ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 将客户端公钥内容追加到authorized_keys文件
exit

安全加固措施

防火墙配置

开放SSH(22端口)和Git(9418端口):

sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-port=9418/tcp
sudo firewall-cmd --reload

访问控制

通过/etc/git-daemon-export-ok文件控制仓库是否可匿名访问,在需要公开的仓库中创建该文件:

sudo touch /data/git/repo/project-demo.git/git-daemon-export-ok

SSL证书配置(HTTPS访问)

如需HTTPS安全访问,可使用Nginx反向代理并配置Let's Encrypt免费证书:

sudo yum install -y nginx certbot python3-certbot-nginx
# 申请证书并配置Nginx

常见问题排查

  1. 仓库无法访问:检查git-daemon服务状态、防火墙规则及git-daemon-export-ok文件是否存在。
  2. 推送权限被拒绝:确保仓库目录属主为git用户,且权限为755

相关问答FAQs

Q1: 如何为Git仓库添加用户权限控制?
A1: 可通过Gitolite或Gitosis工具实现权限管理,以Gitolite为例,首先在客户端生成SSH公钥,上传至服务器后,使用gitolite setup初始化,并通过~/.gitolite/conf/gitolite.conf文件配置用户读写权限。

Q2: 如何备份Git仓库数据?
A2: 建议定期通过rsynctar命令备份仓库目录,

rsync -avz /data/git/repo /backup/git-repo-$(date +%Y%m%d)

同时可配置阿里云云备份服务实现异地容灾。

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