怎么在Linux下安装Git服务器?

我将为您提供三种最主流的方法,从最简单到功能最全面,您可以根据自己的需求选择。

怎么在linux下安装git服务器

方法一:基于 SSH 的基础 Git 服务器(最简单、最快速)

这种方法最适合小型团队或个人项目,它利用现有的 SSH 服务器进行认证和传输,无需额外安装其他服务。

步骤 1:安装必要的软件

确保你的系统上已经安装了gitopenssh-server

对于 Ubuntu/Debian
sudo apt update
sudo apt install git openssh-server
对于 CentOS/RHEL/Fedora
sudo yum install git openssh-server  # 或者使用 dnf

步骤 2:在服务器上创建一个专用用户

为了安全和管理方便,我们创建一个名为git 的专门用户来管理所有仓库。

sudo adduser git
按照提示设置密码(后续可通过SSH密钥登录,密码可不常用)

步骤 3:在客户端生成 SSH 密钥对并上传

怎么在linux下安装git服务器

在你的本地开发电脑上(不是服务器),如果你还没有 SSH 密钥,请生成一对:

ssh-keygen -t ed25519 -C "your_email@example.com"
或者使用传统的 RSA 算法
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

一路回车,将在~/.ssh/ 目录下生成id_ed25519(私钥)和id_ed25519.pub(公钥)两个文件。

将公钥上传到服务器:

将本地生成的~/.ssh/id_ed25519.pub 文件内容,添加到服务器上git 用户的~/.ssh/authorized_keys 文件中。

你可以用任何方式完成,

怎么在linux下安装git服务器

1、 使用ssh-copy-id 命令(最简单):

    ssh-copy-id git@你的服务器IP

2、 手动复制粘贴:

- 在本地执行cat ~/.ssh/id_ed25519.pub,复制输出内容。

- 登录服务器:ssh git@你的服务器IP

- 在服务器上,确保~/.ssh 目录存在:mkdir -p ~/.ssh

- 编辑文件:vim ~/.ssh/authorized_keys,将复制的内容粘贴进去,保存退出。

步骤 4:在服务器上初始化一个裸仓库(Bare Repository)

现在回到服务器上,以git 用户身份操作。

切换到 git 用户
sudo su - git
创建一个用于存放所有仓库的目录
mkdir my-project.git
进入该目录并初始化一个裸仓库
裸仓库没有工作区,专门用于共享和推送代码,通常以 .git 
cd my-project.git
git init --bare

初始化成功后,你会看到类似Initialized empty Git repository in /home/git/my-project.git/ 的提示。

步骤 5:在客户端克隆和推送代码

在你的本地机器上,你就可以像使用任何 Git 仓库一样进行操作了:

克隆仓库
git clone git@你的服务器IP:/home/git/my-project.git
进入仓库目录,添加文件,提交,然后推送
cd my-project
touch README.md
git add README.md
git commit -m "add README"
git push origin main

至此,一个最基础的 Git 服务器已经搭建完成!

优点:极其简单、安全(基于 SSH)、无需额外进程。

缺点:用户管理麻烦(需要手动管理所有用户的公钥到authorized_keys 文件)、缺少 Web 界面和权限控制。

方法二:使用 Gitolite(推荐用于小型团队)

如果你需要更精细的权限控制(谁可以读/写某个项目),Gitolite 是完美的选择,它依然基于 SSH,但提供了强大的访问控制规则。

安装和配置 Gitolite 的步骤稍多,但绝对是值得的,由于其配置过程需要一定篇幅,建议您参考其官方文档或搜索专门的教程。

大致流程:

1、 在服务器上创建git 用户。

2、 将一个特殊的“管理员”SSH 公钥添加到git 用户的authorized_keys 中。

3、 使用这个“管理员”私钥在本地电脑上克隆 Gitolite 的管理仓库。

4、 通过在这个管理仓库中修改配置文件来添加新用户、新仓库和设置权限。

5、 推送配置更新,Gitolite 会自动生效。

优点:强大的分支/用户权限控制、依然轻量。

缺点:没有 Web 界面,配置通过 Git 仓库进行,有一定学习成本。

方法三:使用 GitLab(功能最全面)

如果你需要一个类似 GitHub 或 Gitea 的完整 DevOps 平台,包括 Web 界面、Issue、MR、CI/CD 等全套功能,GitLab 是企业级的选择。

安装步骤(使用官方 Omnibus 包)

1. 安装依赖
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
2. 添加 GitLab 包仓库并安装
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
3. 安装 GitLab
将http://你的域名或IP 替换为你打算访问 GitLab 的地址。
这一步会自动配置并启动所有服务(Nginx, PostgreSQL, Redis, Sidekiq, Puma等)。
sudo EXTERNAL_URL="http://your-server-ip-or-domain" apt-get install gitlab-ee

安装完成后,访问你设置的EXTERNAL_URL,首次访问会强制你为root 用户设置密码,设置完成后,你就可以用root 和新密码登录,开始使用了。

优点:功能极其强大,一站式DevOps平台,图形化界面易于管理。

缺点:资源消耗大(需要至少 4GB 内存),安装和维护相对复杂。

特性 基础 SSH Gitolite GitLab
难度非常简单 中等 较复杂
用户/权限管理 手动,非常弱非常强大强大且图形化
Web 界面有,功能完整
资源占用极低 高(≥4G RAM)
适用场景 个人、极小型团队 中小型团队,需要精细权限 企业、大型团队,需要全套工具

给新手的建议:

直接从方法一(基础SSH) 开始,它能让你最快地理解 Git 远程仓库的工作原理,当你觉得手动管理密钥和权限太麻烦时,再逐步升级到GitoliteGitLab

安全提示:

确保服务器的 SSH 端口(默认为 22)安全,最好使用密钥认证并禁用密码登录。

定期更新系统和安装的软件包。

文章摘自:https://idc.huochengrm.cn/fwq/13999.html

评论