当前位置:首页 > 行业动态 > 正文

如何快速搭建并配置高效Git服务器?

在Linux服务器安装Git,创建git用户并配置SSH密钥,新建裸仓库(git init –bare),设置仓库权限,本地通过SSH克隆仓库(git clone git@服务器IP:仓库路径),即可实现代码推送与拉取,需注意防火墙及目录权限配置。

准备工作

  1. 选择服务器环境

    • 推荐使用 Linux 系统(如 Ubuntu/CentOS),因其对 Git 支持更友好。
    • 确保服务器已安装 SSH 服务并开放端口(默认22)。
  2. 安装 Git

    # Ubuntu/Debian  
    sudo apt-get update && sudo apt-get install git  
    # CentOS/RHEL  
    sudo yum install git

搭建 Git 服务器

步骤 1:创建 Git 专用用户

为避免权限混乱,建议创建一个专用于 Git 操作的系统用户:

sudo adduser git  
sudo passwd git  # 设置密码(可选,推荐使用 SSH 密钥替代)

步骤 2:初始化仓库

git 用户身份创建裸仓库(无工作目录的仓库):

sudo su git  
cd /home/git  
mkdir project.git && cd project.git  
git init --bare  

步骤 3:配置 SSH 密钥访问

  1. 客户端生成密钥(本地电脑执行):

    ssh-keygen -t ed25519  # 生成密钥对,保存在 ~/.ssh/ 目录
  2. 服务器端配置公钥(服务器执行):

    # 切换到 git 用户  
    sudo su git  
    mkdir -p ~/.ssh  
    touch ~/.ssh/authorized_keys  
    # 将客户端公钥(id_ed25519.pub)内容粘贴到 authorized_keys  
    chmod 700 ~/.ssh  
    chmod 600 ~/.ssh/authorized_keys

配置权限与安全

  1. 禁用 Shell 登录(增强安全)
    修改 /etc/passwd,将 git 用户的登录 Shell 替换为 git-shell

    git:x:1001:1001::/home/git:/usr/bin/git-shell  
  2. 仓库权限管理

    • 通过 chmodchown 控制仓库目录权限:
      sudo chown -R git:git /home/git/project.git  
      sudo chmod -R 750 /home/git/project.git  

使用 Git 服务器

推送本地仓库到服务器

git remote add origin git@your-server-ip:/home/git/project.git  
git push -u origin master  

克隆远程仓库

git clone git@your-server-ip:/home/git/project.git  

维护与进阶配置

  1. 自动化备份
    使用 cron 定时任务备份仓库至其他存储:

    0 3 * * * tar -czvf /backup/project.git-$(date +%F).tar.gz /home/git/project.git
  2. 启用 HTTPS 访问(可选)

    通过 Nginx 反向代理并配置 SSL 证书(推荐 Let’s Encrypt)。

  3. 仓库管理工具
    如需图形化管理,可部署 Gitea 或 GitLab,但需更多资源。


常见问题

  • 权限错误:确保 git 用户对仓库目录有读写权限。
  • SSH 连接失败:检查防火墙设置及 authorized_keys 文件格式。

通过上述步骤,可快速搭建私有 Git 服务器,支持团队协作与代码管理,重点在于 SSH 密钥配置和权限控制,确保安全性与易用性。


引用说明

  • Git 官方文档:https://git-scm.com/book/
  • SSH 密钥生成指南:https://www.ssh.com/academy/ssh/keygen
  • Linux 权限管理:https://linuxhandbook.com/linux-chmod-command/