Linux 私有 Git 服务器核心是 SSH+ 裸仓库:创建 git 用户、配置 SSH 密钥认证、初始化 bare repo,客户端通过 git clone git@server:/path 克隆协作。

在 Linux 上搭建私有 Git 服务器,核心是用 git 命令行 工具 配合 SSH 协议实现安全、轻量的仓库托管,无需复杂 Web 界面也能高效协作。重点不是装一堆服务,而是理清权限、裸仓库和用户访问这三件事。
准备系统环境与 Git 基础
确保 Linux 服务器(如 Ubuntu/CentOS)已安装 Git 并能正常运行:
- 执行
git --version确认 Git 已安装(推荐 2.0+) - 若未安装,Ubuntu 用
sudo apt install git,CentOS 用sudo yum install git或dnf install git - 创建专用 git 用户(非 root),提升安全性:
sudo adduser git,并禁用其密码登录(后续只走 SSH 密钥)
配置 SSH 密钥认证(关键一步)
所有开发者必须用 SSH 密钥连接,避免明文密码泄露:
- 本地生成密钥对:
ssh-keygen -t ed25519 -C "your_email@example.com" - 将公钥(
~/.ssh/id_ed25519.pub)内容追加到服务器/home/git/.ssh/authorized_keys中 - 设置目录权限:
chmod 700 /home/git/.ssh && chmod 600 /home/git/.ssh/authorized_keys - 测试连接:
ssh git@your-server-ip,成功即表示 SSH 通道就绪
初始化裸仓库(bare repo)
Git 服务器不存工作区文件,只存版本元数据——这就是“裸仓库”:
- 以 git 用户登录:
sudo -u git -i - 在
/home/git下新建项目目录,例如mkdir -p repos/myapp.git - 进入该目录:
cd repos/myapp.git,然后运行git init --bare - 完成后,该目录就是可被克隆的远程地址:
git@your-server-ip:/home/git/repos/myapp.git
客户端克隆与日常使用
团队成员只需一条命令就能开始协作:
- 首次克隆:
git clone git@your-server-ip:/home/git/repos/myapp.git - 提交后推送:
git add . && git commit -m "init" && git push origin main - 其他人拉取更新:
git pull origin main - 注意:首次推送前需确保远程分支存在,可用
git push -u origin main设上游分支
基本上就这些。不需要 Apache、Nginx 或 GitLab 这类重型方案,纯 SSH + bare repo 就能支撑中小团队私有代码管理。关键是把权限管住、密钥配对、仓库建对——不复杂但容易忽略。