Ubuntu 22.04 Git 服务器搭建:5步完成SSH证书登录与裸仓库初始化

发布时间:2026/7/9 2:01:45

Ubuntu 22.04 Git 服务器搭建:5步完成SSH证书登录与裸仓库初始化 Ubuntu 22.04 Git 服务器搭建5步完成SSH证书登录与裸仓库初始化在团队协作开发中代码版本管理是至关重要的环节。虽然市面上有GitHub、GitLab等优秀的代码托管平台但出于代码安全、访问速度或合规性考虑许多企业仍需要搭建私有Git服务器。本文将手把手教你如何在Ubuntu 22.04上快速部署一个安全可靠的企业级Git服务器。1. 环境准备与基础配置在开始之前请确保你拥有一台运行Ubuntu 22.04的服务器物理机或云实例具备sudo权限的账户所有团队成员已生成SSH密钥对id_rsa.pub首先更新系统并安装必要组件sudo apt update sudo apt upgrade -y sudo apt install -y git openssh-server关键安全配置创建一个专用git用户避免使用root账户操作sudo adduser --system --shell /usr/bin/git-shell --group git注意这里通过--shell /usr/bin/git-shell限制了git用户的shell访问权限验证git用户创建id git # 应显示类似uid112(git) gid118(git) groups118(git)2. SSH证书登录配置安全是企业Git服务器的首要考虑。我们采用SSH证书登录方式比密码认证更安全可靠。2.1 收集团队成员公钥让每个团队成员提供他们的id_rsa.pub文件内容将所有公钥存入服务器sudo mkdir -p /home/git/.ssh sudo touch /home/git/.ssh/authorized_keys sudo chmod 700 /home/git/.ssh sudo chmod 600 /home/git/.ssh/authorized_keys sudo chown -R git:git /home/git/.ssh然后将各成员的公钥逐行添加到authorized_keys文件中格式如下ssh-rsa AAAAB3Nza... user1workstation ssh-rsa AAAAB3Nza... user2laptop2.2 优化SSH服务配置编辑/etc/ssh/sshd_config确保包含以下安全设置PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes AllowUsers git重启SSH服务使配置生效sudo systemctl restart sshd3. 初始化Git裸仓库Git裸仓库bare repository是服务端的标准形式不包含工作目录专门用于代码共享。3.1 创建仓库目录结构建议将所有仓库集中管理sudo mkdir -p /var/repos sudo chown git:git /var/repos3.2 初始化示例仓库以创建project.git仓库为例sudo -u git git init --bare /var/repos/project.git关键目录权限设置sudo chmod -R 750 /var/repos sudo chown -R git:git /var/repos3.3 仓库命名规范建议以.git后缀结尾明确标识为裸仓库使用项目名称作为仓库名如backend.git、mobile-app.git对于大型项目可采用project-group/repo-name.git的层级结构4. 客户端连接测试团队成员现在可以通过以下命令克隆仓库git clone gityour-server-ip:/var/repos/project.git常见问题排查连接超时检查防火墙是否开放22端口sudo ufw allow 22/tcp权限拒绝确认客户端公钥已正确添加到authorized_keys仓库不存在检查仓库路径拼写是否正确5. 高级配置与优化5.1 自动化管理脚本创建/usr/local/bin/create-git-repo#!/bin/bash if [ -z $1 ]; then echo Usage: $0 repo-name exit 1 fi sudo -u git git init --bare /var/repos/$1.git echo Repository $1.git created at /var/repos/赋予执行权限sudo chmod x /usr/local/bin/create-git-repo5.2 定期备份策略建议设置每日自动备份sudo crontab -e添加以下内容0 3 * * * tar -czf /backup/git-repos-$(date \%Y\%m\%d).tar.gz /var/repos5.3 性能优化对于大型仓库可启用Git的打包优化sudo -u git git --git-dir/var/repos/project.git gc --aggressive安全加固 checklist[ ] 禁用git用户的shell访问已通过git-shell实现[ ] 配置SSH只允许证书登录[ ] 定期轮换用户SSH密钥[ ] 设置仓库目录的严格权限[ ] 启用防火墙限制访问IP如企业内网[ ] 配置日志监控异常登录尝试通过以上步骤你已经建立了一个符合企业级安全标准的Git服务器。这种方案特别适合10-50人的开发团队在保证安全性的同时提供了良好的协作体验。

相关新闻