搜索
首页系统教程LINUX如何在 Linux 上设置私有 Git 服务器

如何在 Linux 上设置私有 Git 服务器

Feb 11, 2024 pm 02:00 PM
linuxlinux教程linux系统linux命令外壳脚本it服务嵌入式linuxlinux入门linux学习

Git是全球开发人员使用的开源版本控制系统。接下来,我们将介绍如何创建自己的Git Linux服务器来托管项目。

Git服务器用于托管项目的存储库,其中包含源代码和其他核心文件。虽然在大多数情况下,您可以依赖于像GitHub这样的全球知名的Git托管服务,但在某些情况下,最好托管您自己的个人Git服务器,以增加隐私、可定制性和安全性。

现在,让我们学习如何在Linux上设置私有Git服务器。

设置Git服务器的先决条件

在开始设置您的私有Git服务器之前,您需要拥有访问备用计算机或订阅云提供商的权限。这一点很重要,因为您将把备用计算机设置为Git服务器,并从本地计算机连接到该服务器并执行Git操作。

虽然没有明确的系统要求,但1GB的RAM应该足以让Git服务器正常运行。此外,请确保您在计算机上安装并运行了Linux发行版。

第 1 步:在 Linux 服务器上下载并安装 Git

如何在 Linux 上设置私有 Git 服务器

不用说,作为预备步骤,您需要在 Linux 服务器上安装 Git。启动终端并使用 Linux 发行版的包管理器来安装 Git:

在 Debian/Ubuntu 衍生产品上:

sudo apt install git

基于Arch的发行版:

sudo pacman -S git

在 CentOS/RHEL/Fedora 上:

sudo dnf install git

在您的系统上安装 Git 后,请继续执行以下步骤来配置您的 Linux 系统,以将您的 Git 存储库作为 Git 服务器托管。

第 2 步:设置 Git 用户帐户

如何在 Linux 上设置私有 Git 服务器

通过 SSH、RDP 或任何其他远程访问协议连接到您的 Linux 服务器。或者,如果您使用备用计算机作为服务器,请将其打开并创建一个新用户帐户来处理您的存储库。

ssh username@address
sudo useradd git

如何在 Linux 上设置私有 Git 服务器

添加新用户后,使用su命令切换到该用户:

su git

创建专用git用户帐户是一种安全协议,可确保连接到您的 Git 服务器的客户端对机器上的资源的可见性和访问权限有限。这使您可以在多个团队成员将访问您的服务器的小组项目中安全地协作。

第 3 步:创建 .ssh 目录并添加授权密钥

创建一个**.ssh**目录对于存储公钥和其他基本数据是必要的,这些数据将决定谁可以访问这个 Git 服务器。首先,登录到您之前创建的 git 用户帐户,创建 .ssh 目录,并将访问权限限制为仅 git 用户:

ssh git@address
mkdir .ssh
chmod 700 .ssh/
touch .ssh/authorized_keys

如何在 Linux 上设置私有 Git 服务器

使用chmod命令保护目录访问权限,以确保除了您之外没有人可以对其进行更改。进入**.ssh目录并使用****touch**命令创建一个新文件“authorized_keys” 。

cd .ssh
ssh-keygen -t rsa #如果您没有 id_rsa.pub 文件,请使用此命令
cat id_rsa.pub

如何在 Linux 上设置私有 Git 服务器如何在 Linux 上设置私有 Git 服务器

您必须使用您希望授予对 Git 服务器访问权限的客户端的 SSH 公钥来更新此文件。暂停 SSH 会话并使用文本编辑器或cat 命令在本地计算机中打开**.ssh/id_rsa.pub**文件。该文件包含您的公共加密密钥,当将其写入authorized_keys 文件时,您将无需密码即可访问Git 服务器。

cd .sshvi authorized_keys

复制公钥并启动到 Git 服务器的新 SSH 连接。进入**.ssh**目录,使用文本编辑器打开 authorized_keys 文件并粘贴公钥。保存更改并退出。

从那时起,您应该能够在没有任何密码的情况下连接到服务器。对将连接到服务器的每台计算机重复此步骤。

第 4 步:创建一个目录来存储您的所有存储库

访问 Linux 服务器并创建一个目录或使用内置目录作为根目录。请记住,这是存储所有存储库的目录。为了更整洁地组织项目,这是一个很好的做法。

mkdir directory_name

创建目录后,继续本指南的最后一步以完成 Git 服务器的设置。

第 5 步:通过添加新项目启动开发

您现在实际上已经完成了 Git 服务器的设置。现在您只需要通过初始化存储库并将远程源添加到本地计算机来开始开发。使用cd命令进入父目录并创建一个**.git**项目目录:

cd parent_director
ymkdir new_project.git

现在,初始化一个裸 git 存储库:

git init --bare

初始化存储库后,是时候在本地计算机上添加远程源了:

git remote add origin name git@address:new_project.git

这就是您在服务器端需要做的所有事情。现在任何经过身份验证的客户端都可以执行常规的 Git 操作,例如推送、拉取、合并、克隆等。要开始新项目,每次创建新项目时都必须重复此步骤。

通过执行 git push 测试其功能:

touch testfile
git add testfile
git commit -m "test file"
git push name master
git clone git@address:new_project.git

您的文件将成功推送到远程源。要交叉检查推送操作是否有效,您可以克隆存储库,您应该在存储库中找到测试文件。

Git 服务器的安全提示

随着 Git 服务器的启动和运行,您必须密切注意它的安全状态,因为它是您的个人服务器,维护和保护它免受外部威胁是您的唯一责任。要采用的一些最佳安全实践是:

  • 禁用密码登录
  • 将默认 shell 更改为 git-shell。这限制了登录用户发出任何非 git 命令
  • 为 SSH 使用自定义端口
  • 禁用root用户登录
  • 定期备份数据

您可以在 Linux 服务器上实施许多此类安全配置和安全措施,以保护其免受攻击者的侵害并防止未经授权的访问。

以上是如何在 Linux 上设置私有 Git 服务器的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:良许Linux教程网。如有侵权,请联系admin@php.cn删除
Linux和Windows之间的引导过程有何不同?Linux和Windows之间的引导过程有何不同?Apr 29, 2025 am 12:12 AM

Linux的启动过程包括:1.启动BIOS/UEFI,2.加载GRUB,3.加载内核和initrd,4.执行init进程,5.启动系统服务,6.启动登录管理器;Windows的启动过程包括:1.启动BIOS/UEFI,2.加载WindowsBootManager,3.加载winload.exe,4.加载ntoskrnl.exe和HAL,5.启动系统服务,6.启动登录屏幕;Linux提供更多的自定义选项,而Windows则更注重用户体验和稳定性。

如何在Linux中自动重新启动失败的服务如何在Linux中自动重新启动失败的服务Apr 28, 2025 am 09:39 AM

本指南详细介绍了如何使用SystemD配置自动服务在Linux中重新启动,从而增强了系统的可靠性并最大程度地减少停机时间。 系统管理员通常依靠此功能来确保关键服务,例如Web服务器(APA

10个隐藏的Linux命令每个系统都应该知道10个隐藏的Linux命令每个系统都应该知道Apr 28, 2025 am 09:35 AM

作为Linux用户,我们经常依赖常用的命令ls、grep、awk、sed和find来完成工作。但Linux拥有大量鲜为人知的命令,可以节省时间、自动化任务并简化工作流程。 本文将探讨一些被低估但却功能强大的Linux命令,它们值得更多关注。 rename – 高效批量重命名文件 当您需要一次重命名多个文件时,rename命令是救星。无需使用包含mv的循环,rename允许您轻松应用复杂的重命名模式。 将所有.txt文件更改为.log。 rename 's/\.txt$/\.log/' *

如何在Linux中的SystemD下列出所有运行服务如何在Linux中的SystemD下列出所有运行服务Apr 28, 2025 am 09:29 AM

Linux 系统提供各种系统服务(例如进程管理、登录、syslog、cron 等)和网络服务(例如远程登录、电子邮件、打印机、Web 托管、数据存储、文件传输、域名解析(使用 DNS)、动态 IP 地址分配(使用 DHCP)等等)。 从技术上讲,服务是在后台持续运行的进程或进程组(通常称为 守护进程),等待传入请求(尤其来自客户端)。 Linux 支持不同的方式来管理(启动、停止、重启、启用系统启动时的自动启动等)服务,通常通过进程或服务管理器。几乎所有现代 Linux 发行版现在都使用相同的进

Crossover 25:在Linux上运行Windows软件和游戏Crossover 25:在Linux上运行Windows软件和游戏Apr 28, 2025 am 09:27 AM

使用Crossover 25运行Windows软件和游戏 由于CodeWeavers的Crossover 25,在Linux上运行Windows应用程序和游戏现在比以往任何时候都容易。 这个商业软件解决方案让Linux用户运行各种各样的风

PCLOUD-最安全的云存储[优惠50%]PCLOUD-最安全的云存储[优惠50%]Apr 28, 2025 am 09:26 AM

使用PCLOUD保护数据:Linux安装的综合指南 领先的安全云存储服务PCloud提供了一个可靠的平台来管理您的文件和数据。本指南详细介绍了Linux系统上的安装过程。 关于

MANGOHUD-监视FPS,Linux游戏中的CPU和GPU使用情况MANGOHUD-监视FPS,Linux游戏中的CPU和GPU使用情况Apr 28, 2025 am 09:25 AM

MangoHud:实时监控Linux游戏性能的利器 MangoHud是一款功能强大且轻量级的工具,专为游戏玩家、开发者以及任何希望实时监控系统性能的用户而设计。它作为Vulkan和OpenGL应用程序的叠加层,显示FPS、CPU和GPU使用率、温度等重要信息。本文将探讨MangoHud的功能、工作原理以及使用方法,并提供在Linux系统上安装和配置MangoHud的分步说明。 MangoHud是什么? MangoHud是一个开源项目,可在GitHub上获取,旨在提供一种简单且可自定义的方式来监

5必不可少的Linux命令行档案工具 - 第1部分5必不可少的Linux命令行档案工具 - 第1部分Apr 28, 2025 am 09:23 AM

管理存档文件是Linux中的常见任务。本文是两部分系列中的第一篇,探讨了五种强大的命令行档案工具,详细介绍了他们的功能和示例的用法。 1。焦油命令:多功能存档实用程序 t

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)