如何在 Linux 上設置私有 Git 服務器
Git 是全球開發人員使用的開源版本控制系統。下面介紹如何創建自己的 Git Linux 服務器來托管項目。
Git 服務器托管項目的存儲庫,其中包含源代碼和其他核心文件。雖然在大多數情況下,您可以依賴 GitHub 等全球知名的 Git 托管服務,但在某些情況下,最好托管您的個人 Git 服務器以增加隱私、可定制性和安全性。
讓我們學習如何在 Linux 上設置私有 Git 服務器。
設置 Git 服務器的先決條件
在您開始設置您的私有 Git 服務器之前,您必須有權訪問備用機器或訂閱云提供商。這一點很重要,因為您將設置備用機器作為 Git 服務器,您將從本地機器連接到該服務器并執行 Git 操作。
雖然沒有明確定義的系統要求,但 1 GB 的 RAM 應該足以讓 Git 服務器正常運行。此外,請確保您在機器上安裝并運行了 Linux 發行版。
第 1 步:在 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 用戶帳戶
通過 SSH、RDP 或任何其他遠程訪問協議連接到您的 Linux 服務器。或者,如果您使用備用計算機作為服務器,請將其打開并創建一個新用戶帳戶來處理您的存儲庫。
ssh username@address
sudo useradd 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
使用chmod命令保護目錄訪問權限,以確保除了您之外沒有人可以對其進行更改。進入.ssh目錄并使用touch命令創建一個新文件“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 步:創建一個目錄來存儲您的所有存儲庫
訪問 Linux 服務器并創建一個目錄或使用內置目錄作為根目錄。請記住,這是存儲所有存儲庫的目錄。為了更整潔地組織項目,這是一個很好的做法。
mkdir directory_name
創建目錄后,繼續本指南的最后一步以完成 Git 服務器的設置。
第 5 步:通過添加新項目啟動開發
您現在實際上已經完成了 Git 服務器的設置。現在您只需要通過初始化存儲庫并將遠程源添加到本地計算機來開始開發。使用cd命令進入父目錄并創建一個.git項目目錄:
cd parent_directory
mkdir 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 服務器上實施許多此類安全配置和安全措施,以保護其免受攻擊者的侵害并防止未經授權的訪問。