如何在Ubuntu上設定Git伺服器?


在Ubuntu上搭建Git伺服器可以幫助您將程式碼庫託管在中央伺服器上。這對於任何在開發團隊中工作的人來說都特別重要。本教程將詳細解釋如何在Ubuntu上設定Git伺服器,包括Git的安裝、使用者和其它安全注意事項。

您需要什麼

  • 一臺安裝了Ubuntu 20.04或更高版本的機器,能夠訪問終端,並具備基本的Linux作業系統知識。
  • 安裝軟體的root或sudo許可權。
  • 基本的命令列知識。
現在重要的是更詳細地描述每個步驟。

步驟1:更新您的系統

在將Git安裝到系統之前,使用者需要確保Ubuntu系統已更新。

sudo apt update && sudo apt upgrade -y

步驟2:安裝Git

Ubuntu使用aptitude進行包管理,這使得安裝git成為可能。使用以下命令:

sudo apt install git -y

安裝完成後,驗證Git安裝:

git --version

如果得到版本號,則表示Git已成功安裝到您的系統中。

步驟3:建立一個新的Git使用者

為您的Git倉庫建立一個特定的使用者可以提高安全性,因為它讓每個人都使用自己的賬戶。
sudo adduser git

這將要求您輸入密碼以及您想要新增的新使用者的其他詳細資訊。之後切換到git使用者。

sudo su - git

步驟4:設定SSH以實現安全訪問

SSH是一個安全協議,它控制對您的Git伺服器的連線,因此只有被允許的使用者才能連線。

1. 為Git使用者建立一個.ssh目錄

mkdir ~/.ssh && chmod 700 ~/.ssh

2. 新增需要訪問此Git伺服器的使用者的SSH金鑰。開啟authorized_keys檔案

nano ~/.ssh/authorized_keys

每個使用者都應該複製其公鑰(通常,其檔名為id_rsa.pub),並將其新增到authorized_keys檔案中。
3. 設定authorized_keys檔案的許可權

chmod 600 ~/.ssh/authorized_keys

步驟5:建立一個最小化的Git倉庫

“裸”Git倉庫的概念實際上非常適合伺服器,主要是因為“裸”倉庫不包含工作檔案,也不包含已“檢出”的檔案,而是專為共享程式碼而設計。

1. 建立一個目錄來儲存倉庫

mkdir -p ~/repositories/my_project.git

2. 將倉庫初始化為裸Git倉庫

cd ~/repositories/my_project.git
git init --bare

3. 設定許可權以確保Git使用者擁有此目錄

sudo chown -R git:git ~/repositories/my_project.git

步驟6:根據您的需求設定訪問許可權(非強制性)

您還可以透過SSH設定或一些額外的工具來管理對倉庫的訪問。為了避免使步驟說明過於複雜,讓我們繼續使用基於SSH的訪問。

步驟7:將倉庫克隆到另一臺本地計算機

為了使用新的Git伺服器倉庫,下一步必須將其克隆到本地機器。

git clone git@your_server_ip:~/repositories/my_project.git

將your_server_ip替換為伺服器的IP地址。

步驟8:協作工作組織的許可權

要允許多個使用者推送更改,請在倉庫中設定許可權

chmod -R g+ws ~/repositories/my_project.git

將使用者新增到Git組

sudo usermod -aG git

步驟9:測試Git伺服器

將更改推送到伺服器以確認一切配置正確

1. 導航到本地倉庫

cd my_project

2. 進行更改,提交併將其推送到伺服器

git commit -m "Initial commit"
git push origin master

如果沒有錯誤,恭喜您,您已經在Ubuntu上成功啟動並運行了自己的Git伺服器!

保護您的Git伺服器

此外,防火牆規則應僅允許透過SSH連線到Git伺服器,並且可以配置fail2ban工具來防止重複的登入失敗嘗試。

常見的故障排除技巧

  • SSH身份驗證錯誤:還應確保將正確的SSH金鑰插入authorized_keys中,並且檔案的許可權正確。
  • 許可權問題:確保Git使用者擁有倉庫目錄,並且具有755組許可權

結論

在Ubuntu上實現Git伺服器對於儲存程式碼非常有用。在本教程中,我們解釋瞭如何在Ubuntu上設定一個有效且高效的Git伺服器。有時,您需要備份您的倉庫以防止資料丟失,並且擁有其他跟蹤方法可能有助於更好地控制伺服器。

更新於:2024年11月1日

38 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.