logo

在 Linux 上搭建 Git 服务器教程与详解

本站 870
为了帮助您更详尽地了解如何在Linux系统上架设Git服务器,我将为您逐步解析整个过程。以下是在Linux环境下配置和运行一个自托管的Git服务器详细步骤:

**一、安装必要的软件**

首先确保您的Linux操作系统是最新的,并已安装`git-core`包(对于大多数主流发行版如Ubuntu/Debian使用apt-get或CentOS/RHEL等基于yum的系统)。

bash

# 对于 Debian / Ubuntu 系统:
sudo apt update && sudo apt install git

# 对于 CentOS / RHEL 系统:
sudo yum check-update; sudo yum install -y git


**二、创建用户并设置SSH访问权限**

为Git服务新建专用账户以增强安全性:

bash

sudo adduser --shell=/bin/bash --gecos 'Git Server' git # 创建名为"git”的新用户
passwd git # 设置该用户的密码 (可选)
su - git # 切换到刚创建好的git用户进行后续操作
cd ~ # 进入其主目录

ssh-keygen # 在此生成公钥私钥对用于无密登录(可以留空直接回车跳过秘钥口令设定)

cat ~/.ssh/id_rsa.pub >> .ssh/authorized_keys # 将公钥添加至授权keys文件中允许免密登陆本机
chmod 600 .ssh/* # 调整.ssh目录下所有文件的安全性
exit # 返回root或其他管理员账号


**三、初始化裸仓库及防火墙规则**

选择合适的路径作为你的代码库根目录,例如 `/srv/git`. 初始化一个新的裸repository :

bash

mkdir -p /srv/git/myrepo.git
chown -R git:git /srv/git/

sudo su git # 登录刚刚创建的git用户环境
cd /srv/git/myrepo.git #进入项目目录
git init --bare # 初始化为空的版本控制中心 (--bare 表示这是一个纯数据存储仓库)
exit # 回到普通用户或者 root 用户界面

# 配置防火墙开放 SSH 访问端口22(如果适用的话)
ufw allow ssh # 对于采用Uncomplicated Firewall(UFW) 的ubuntu/debian系列
firewall-cmd --permanent --add-service=sshd # 对于centos/redhat使用的 firewalld
systemctl reload firewall-cmd # 应用更改后重载防火墙规则


**四、远程克隆与推送测试**

现在其它机器上的开发者可以通过 `clone` 命令从这个 Git server 克隆仓库了:

bash

# 开发者本地计算机命令行执行如下指令获取远端 repository 并建立链接
git clone user@your-server-ip:/srv/git/myrepo.git

其中 "user" 是你之前创建的git用户名,"your-server-ip"是你的Linuux服务器IP地址.

通过以上步骤,在Linux环境中搭建了一个基础且安全的Git服务器。当然实际生产场景可能还需要进一步考虑诸如访问策略细化(Gitolite/GitLab),日志审计以及备份恢复等方面的优化措施。但无论如何这已经是一个良好的开端,足以支持团队间的源码协作管理需求。

标签: git服务器linux