🗣 Wd提问: linux部署git服务器
🤖 Ai回答: 在 Linux 上部署 Git 服务器有多种方式,最常用的是使用 Git + SSH(推荐)或 Git over HTTP。下面以 SSH 方式 为例,介绍如何在 Linux 系统上搭建一个简易的 Git 服务器。
✅ 一、准备工作
1、系统要求
一台 Linux 服务器(如 Ubuntu、CentOS、Debian 等)
拥有 root 或 sudo 权限
已安装 Git(大多数系统默认已安装)
bash
检查 Git 是否安装
git version
如果没有安装,可执行:
bash
Ubuntu/Debian
sudo apt update && sudo apt install git -y
CentOS/RHEL/Fedora
sudo yum install git -y CentOS 7 及以下
或
sudo dnf install git -y CentOS 8+/Fedora
✅ 二、创建 Git 用户(推荐)
为安全起见,建议创建一个专门用于 Git 服务的用户(如 `git`),避免使用 root。
bash
sudo adduser git
sudo passwd git 设置密码(可选,若用密钥登录则无需密码)
💡 建议禁用 shell 登录(增强安全性):
bash
sudo usermod -s /usr/bin/git-shell git
`git-shell` 是 Git 提供的受限 shell,只允许执行 Git 相关命令,防止用户登录后执行其他操作。
✅ 三、配置 SSH 密钥(推荐方式)
1、在客户端生成 SSH 密钥(开发者电脑)
bash
ssh-keygen -t rsa -b 4096 -C your_email@65.hk
默认会生成 `~/.ssh/id_rsa` 和 `~/.ssh/id_rsa.pub`
2、将公钥上传到服务器
将本地公钥内容(`id_rsa.pub`)复制到服务器上的 `/home/git/.ssh/authorized_keys`
bash
在服务器上操作:
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
将客户端公钥内容粘贴到 authorized_keys 文件中
sudo nano /home/git/.ssh/authorized_keys
或者直接从客户端推送:
bash
客户端执行(需知道服务器 IP 和 git 密码)
cat ~/.ssh/id_rsa.pub | ssh git@your_server_ip mkdir -p ~/.ssh && cat ~/.ssh/authorized_keys
⚠️ 注意:确保 `/home/git/.ssh` 目录和文件权限正确,否则 SSH 会拒绝登录。
✅ 四、创建裸仓库(Bare Repository)
在服务器上创建一个“裸仓库”(无工作区,仅用于存储版本历史)。
bash
切换到 git 用户
sudo su git
创建项目仓库目录(例如:myproject.git)
mkdir -p /home/git/repositories/myproject.git
cd /home/git/repositories/myproject.git
初始化裸仓库
git init bare
📌 裸仓库命名惯例:以 `.git` 结尾(如 `myproject.git`)
✅ 五、客户端克隆与推送测试
在你的本地开发机上测试连接:
bash
克隆仓库
git clone git@your_server_ip:/home/git/repositories/myproject.git
进入项目目录
cd myproject
创建测试文件并提交
echo Hello Git Server README.md
git add .
git commit -m Initial commit
推送到服务器
git push origin master
✅ 如果成功,说明 Git 服务器部署完成!
✅ 六、(可选)设置仓库权限
如果多个开发者共用仓库,可以设置组权限:
bash
创建 git 组
sudo groupadd git
将 git 用户加入组
sudo usermod -a -G git git
修改仓库权限
sudo chown -R git:git /home/git/repositories/
sudo chmod -R 775 /home/git/repositories/
✅ 七、(进阶)使用 Gitolite / Gitea / GitLab
如果你需要更强大的功能(如权限管理、Web 界面、Pull Request 等),推荐使用:
| 工具 | 特点 |
| Gitolite | 轻量级,基于 SSH,适合小团队 |
| Gitea | 自托管,轻量,支持 Web UI |
| GitLab CE | 功能强大,企业级,资源占用较高 |
📦 示例:快速部署 Gitea(推荐新手)
bash
下载 Gitea
wget -O gitea https://dl.gitea.io/gitea/latest/gitea-linux-amd64
赋予执行权限
chmod +x gitea
启动(默认监听 3000 端口)
./gitea web
然后访问 `http://your_server_ip:3000` 完成初始化配置。
✅ 八、防火墙设置(如需远程访问)
确保 SSH 端口(默认 22)开放:
bash
Ubuntu/Debian (ufw)
sudo ufw allow 22
CentOS/Fedora (firewalld)
sudo firewall-cmd permanent add-service=ssh
sudo firewall-cmd reload
✅ 九、总结
✅ 你已完成以下步骤:
安装 Git
创建 git 用户并限制 shell
配置 SSH 密钥认证
创建裸仓库
客户端测试克隆与推送
📌 附:常用命令速查
bash
查看仓库状态
git status
添加远程仓库
git remote add origin git@server:/path/to/repo.git
推送代码
git push origin main
拉取代码
git pull origin main
✅ 现在你已经拥有了一个基础但功能完整的 Git 服务器!可根据团队规模选择是否升级到 Gitea/GitLab 等平台。
如有问题欢迎继续提问!🚀
📣 商家广告:





0
IP地址: 107.197.155.187
搜索次数: 0
提问时间: 2025-11-09 08:33:22
🛒 域名购买:
3.gx.cn
kt6.cn
pcks.cn
2226.com.cn
979.net.cn
59.gold
zv.gs
yz.biz
9.gz.cn
pai.kim
❓️ 热门提问:
人工智能云服务器
windows 服务器管理
.pics 域名
挂机主机尺寸
下载云空间收费吗
机架服务器品牌
深圳飞香港有直飞吗
为什么一直没信号怎么办
个人网站免费域名和服务器
域名抢注平台SEO
豌豆Ai站群搜索引擎系统
🌐 域名评估:
su.xz.cn
www.example.com
h.sc.cn
sph.net.cn
j-f.com.cn
Zhao.work
su7.gs.cn
955.net.cn
bxss.me
sea.cab
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
搜站点
北京搜索优化
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。