如何在 Linux 上設置私有 Git 服務器
Git 是全球開發(fā)人員使用的開源版本控制系統(tǒng)。下面介紹如何創(chuàng)建自己的 Git Linux 服務器來托管項目。
Git 服務器托管項目的存儲庫,其中包含源代碼和其他核心文件。雖然在大多數(shù)情況下,您可以依賴 GitHub 等全球知名的 Git 托管服務,但在某些情況下,最好托管您的個人 Git 服務器以增加隱私、可定制性和安全性。
讓我們學習如何在 Linux 上設置私有 Git 服務器。
設置 Git 服務器的先決條件
在您開始設置您的私有 Git 服務器之前,您必須有權訪問備用機器或訂閱云提供商。這一點很重要,因為您將設置備用機器作為 Git 服務器,您將從本地機器連接到該服務器并執(zhí)行 Git 操作。
雖然沒有明確定義的系統(tǒng)要求,但 1 GB 的 RAM 應該足以讓 Git 服務器正常運行。此外,請確保您在機器上安裝并運行了 Linux 發(fā)行版。
第 1 步:在 Linux 服務器上下載并安裝 Git
不用說,作為預備步驟,您需要在 Linux 服務器上安裝 Git。啟動終端并使用 Linux 發(fā)行版的包管理器來安裝 Git:
在 Debian/Ubuntu 衍生產(chǎn)品上:
sudo apt install git
基于Arch的發(fā)行版:
sudo pacman -S git
在 CentOS/RHEL/Fedora 上:
sudo dnf install git
在您的系統(tǒng)上安裝 Git 后,請繼續(xù)執(zhí)行以下步驟來配置您的 Linux 系統(tǒng),以將您的 Git 存儲庫作為 Git 服務器托管。
第 2 步:設置 Git 用戶帳戶
通過 SSH、RDP 或任何其他遠程訪問協(xié)議連接到您的 Linux 服務器?;蛘?,如果您使用備用計算機作為服務器,請將其打開并創(chuàng)建一個新用戶帳戶來處理您的存儲庫。
ssh username@address
sudo useradd git
添加新用戶后,使用su命令切換到該用戶:
su git
創(chuàng)建專用git用戶帳戶是一種安全協(xié)議,可確保連接到您的 Git 服務器的客戶端對機器上的資源的可見性和訪問權限有限。這使您可以在多個團隊成員將訪問您的服務器的小組項目中安全地協(xié)作。
第 3 步:創(chuàng)建 .ssh 目錄并添加授權密鑰
創(chuàng)建一個.ssh目錄對于存儲公鑰和其他基本數(shù)據(jù)是必要的,這些數(shù)據(jù)將決定誰可以訪問這個 Git 服務器。首先,登錄到您之前創(chuàng)建的 git 用戶帳戶,創(chuàng)建 .ssh 目錄,并將訪問權限限制為僅 git 用戶:
ssh git@address
mkdir .ssh
chmod 700 .ssh/
touch .ssh/authorized_keys
使用chmod命令保護目錄訪問權限,以確保除了您之外沒有人可以對其進行更改。進入.ssh目錄并使用touch命令創(chuàng)建一個新文件“authorized_keys” 。
cd .ssh
ssh-keygen -t rsa #如果您沒有 id_rsa.pub 文件,請使用此命令
cat id_rsa.pub
您必須使用您希望授予對 Git 服務器訪問權限的客戶端的 SSH 公鑰來更新此文件。暫停 SSH 會話并使用文本編輯器或cat 命令在本地計算機中打開.ssh/id_rsa.pub文件。該文件包含您的公共加密密鑰,當將其寫入authorized_keys 文件時,您將無需密碼即可訪問Git 服務器。
cd .ssh
vi authorized_keys
復制公鑰并啟動到 Git 服務器的新 SSH 連接。進入.ssh目錄,使用文本編輯器打開 authorized_keys 文件并粘貼公鑰。保存更改并退出。
從那時起,您應該能夠在沒有任何密碼的情況下連接到服務器。對將連接到服務器的每臺計算機重復此步驟。
第 4 步:創(chuàng)建一個目錄來存儲您的所有存儲庫
訪問 Linux 服務器并創(chuàng)建一個目錄或使用內(nèi)置目錄作為根目錄。請記住,這是存儲所有存儲庫的目錄。為了更整潔地組織項目,這是一個很好的做法。
mkdir directory_name
創(chuàng)建目錄后,繼續(xù)本指南的最后一步以完成 Git 服務器的設置。
第 5 步:通過添加新項目啟動開發(fā)
您現(xiàn)在實際上已經(jīng)完成了 Git 服務器的設置?,F(xiàn)在您只需要通過初始化存儲庫并將遠程源添加到本地計算機來開始開發(fā)。使用cd命令進入父目錄并創(chuàng)建一個.git項目目錄:
cd parent_directory
mkdir new_project.git
現(xiàn)在,初始化一個裸 git 存儲庫:
git init --bare
初始化存儲庫后,是時候在本地計算機上添加遠程源了:
git remote add origin name git@address:new_project.git
這就是您在服務器端需要做的所有事情?,F(xiàn)在任何經(jīng)過身份驗證的客戶端都可以執(zhí)行常規(guī)的 Git 操作,例如推送、拉取、合并、克隆等。要開始新項目,每次創(chuàng)建新項目時都必須重復此步驟。
通過執(zhí)行 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 服務器的啟動和運行,您必須密切注意它的安全狀態(tài),因為它是您的個人服務器,維護和保護它免受外部威脅是您的唯一責任。要采用的一些最佳安全實踐是:
- 禁用密碼登錄
- 將默認 shell 更改為 git-shell。這限制了登錄用戶發(fā)出任何非 git 命令
- 為 SSH 使用自定義端口
- 禁用root用戶登錄
- 定期備份數(shù)據(jù)
您可以在 Linux 服務器上實施許多此類安全配置和安全措施,以保護其免受攻擊者的侵害并防止未經(jīng)授權的訪問。