1. 程式人生 > >CentOS 搭建 Git伺服器

CentOS 搭建 Git伺服器

GitHub是一個免費託管開原始碼的遠端倉庫,但是有時候我們既不想公開原始碼,又不想給GitHub交保護費。如果這時候我們有一臺自己的伺服器,那我們就可以把這個伺服器搭建成一臺Git伺服器作為私有倉庫使用

1.安裝Git

sudo yum install -y git

2.建立一個git使用者和使用者組,用來執行git服務

# 建立git使用者組    
sudo groupadd git
# 建立git使用者
sudo useradd -g git git
# 為git使用者新增密碼
sudo passwd git

3.建立證書登入

Window系統下用Git Bash執行以下命令把公鑰複製到遠端伺服器上

# 把伺服器地址改為自己的伺服器地址
# 過程中會提示輸入密碼,輸入上面為git使用者新增的密碼即可
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]伺服器地址

也可以自己手動把公鑰匯入到/home/git/.ssh/authorized_keys檔案裡,一行一個。不建議複製貼上,因為Window系統和Linux系統的檔案格式不同,可能就會導致出錯

.ssh的許可權為700 authorized_keys的許可權為600

4.伺服器配置

需要將/etc/ssh/sshd_config中的RSA認證開啟

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

RSAAuthentication yes應該在/etc/ssh/ssh_config檔案中

5.初始化Git倉庫

選定一個目錄作為git倉庫,假定是/home/git/src,在/home/git/src目錄下輸入如下命令,建立一個sample.git資源庫

git init --bare sample.git

6.禁用shell登入(可選)

出於安全考慮,建立的git使用者不允許登入shell,可以通過編輯/etc/passwd檔案完成。找到下面這一行:

git:x:1003:1003::/home/git:/bin/bash

改為:

git:x:1003:1003::/home/git:/usr/bin/git-shell

這樣git

使用者可以正常通過ssh使用git,但無法登入shell,因為我們為git使用者指定的git-shell每一次登入就自動退出

7.克隆遠端倉庫

現在就可以用git clone命令克隆遠端倉庫了

#url格式 [email protected]伺服器地址:資源庫地址
git clone [email protected]:/home/git/src/sample.git