选择服务器环境
安装 Git
# Ubuntu/Debian sudo apt-get update && sudo apt-get install git # CentOS/RHEL sudo yum install git
为避免权限混乱,建议创建一个专用于 Git 操作的系统用户:
sudo adduser git sudo passwd git # 设置密码(可选,推荐使用 SSH 密钥替代)
以 git
用户身份创建裸仓库(无工作目录的仓库):
sudo su git cd /home/git mkdir project.git && cd project.git git init --bare
客户端生成密钥(本地电脑执行):
ssh-keygen -t ed25519 # 生成密钥对,保存在 ~/.ssh/ 目录
服务器端配置公钥(服务器执行):
# 切换到 git 用户 sudo su git mkdir -p ~/.ssh touch ~/.ssh/authorized_keys # 将客户端公钥(id_ed25519.pub)内容粘贴到 authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
禁用 Shell 登录(增强安全)
修改 /etc/passwd
,将 git 用户的登录 Shell 替换为 git-shell
:
git:x:1001:1001::/home/git:/usr/bin/git-shell
仓库权限管理
chmod
和 chown
控制仓库目录权限: sudo chown -R git:git /home/git/project.git sudo chmod -R 750 /home/git/project.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
自动化备份
使用 cron
定时任务备份仓库至其他存储:
0 3 * * * tar -czvf /backup/project.git-$(date +%F).tar.gz /home/git/project.git
启用 HTTPS 访问(可选)
通过 Nginx 反向代理并配置 SSL 证书(推荐 Let’s Encrypt)。
仓库管理工具
如需图形化管理,可部署 Gitea 或 GitLab,但需更多资源。
git
用户对仓库目录有读写权限。 authorized_keys
文件格式。 通过上述步骤,可快速搭建私有 Git 服务器,支持团队协作与代码管理,重点在于 SSH 密钥配置和权限控制,确保安全性与易用性。