1. 程式人生 > 實用技巧 >Git在CentOS下搭建私有的git伺服器

Git在CentOS下搭建私有的git伺服器

伺服器端:

第一步:配置git

1.1 從yum上安裝git

yum –y install git

1.2 檢視git版本:安裝完成後,在伺服器端輸入

git --version

1.3 建立使用者:在伺服器中建立一個git專屬使用者

//以下為CentOS下的使用者,賬戶密碼自定義
useradd git
passwd  git

1.4禁止該git使用者使用shell登入系統(為了安全性,一般都禁止)

vi /etc/passwd

按i進入編輯模式,在最後一行將git使用者修改成以下配置

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

第二步:配置遠端倉庫

2.1建立一個空倉庫

我們選擇在路徑:cd /home/下先建立一個使用者目錄,在使用者目錄下建立一個git倉庫

cd /home   
mkdir git  
cd git   
git init --bare LearnProject.git 

到這裡,空倉庫已經建立成功 ,倉庫的路徑為:/home/git/LearnProject.git

2.2為剛剛建立的使用者git賦予許可權

輸入以下命令,為git使用者賦予許可權

//chown -R 使用者名稱:組名 檔案
chown -R git:git LearnProject.git
//建議home以及git資料夾都賦許可權

第三步:開啟 RSA 認證

進入/etc/ssh目錄,編輯 sshd_config

cd  /etc/ssh 
vi ssh_config

按i進入插入模式,開啟以下三個配置的註釋(帶#為註釋),按ESC退出插入模式,按:wq儲存

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

儲存完成後,重啟sshd服務

/etc/rc.d/init.d/sshd restart
//這個執行失敗則執行下面的命令
service sshd restart

至此,伺服器端git配置完成;

客戶端

第一步:配置git

1.1安裝git

在Linux上參考伺服器端安裝git,在Windows下教程很多,安裝也傻瓜式,這裡不再贅述

1.2開啟gitbash建立git使用者

git config --global user.name "LiYu"
git config --global user.email "[email protected]"

1.3建立與伺服器通訊的金鑰

在gitbash中,輸入以下命令,為自己的郵箱建立一個金鑰

ssh-keygen -t rsa -C "[email protected]"

一路enter下去

這時候,系統已經為我們建立了一個公鑰和金鑰,id_rsa是金鑰,不能告訴任何人,id_rsa.pub是公鑰,可以公開;

1.4將本地的公鑰新增到伺服器上

1.4.1 通過客戶端命令列將本地公鑰新增進遠端伺服器中

在gitbash下,輸入以下命令(ip地址換成你git伺服器的地址)

ssh git@47.97.194.255 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

1.4.2手動將公鑰新增到伺服器中

在1.3中,我們建立了一個公鑰,以Windows系統為例子,我們先找到這個檔案。這個檔案的路徑在:

C:\Users\使用者名稱\.ssh\id_rsa.pub

用記事本的方式開啟,我們會得到一串金鑰

將以上Ctrl+A全選然後複製。

在伺服器端,我們用vi編輯器訪問authorized_keys,將以上資訊貼上進其中

vi /home/git/.ssh/authorized_keys

然後:wq儲存。

通過以上1.4.1和1.4.2兩種方法,我們就將本地的公鑰新增進伺服器中了。如果發現該目錄下沒有.ssh檔案,我們可以手動建立一個,並新增一個authorized_keys

第二步:克隆遠端倉庫

將遠端空倉庫克隆到本地

2.1建立本地資料夾

假設我們在D:/gitRepo/gitTest下建立一個用於本地的git倉庫資料夾

cd D:
mkdir gitRepo
cd gitRepo
mkdir gitTest

2.2克隆遠端倉庫

//埠在22的情況下
git clone git@47.97.194.255:/home/git/LearnProject.git
 
//埠在非22的情況下(如5000)
git clone ssh://[email protected]:5000/home/git/LearnProject.git

第三步:push/pull專案
做完以上伺服器端/客戶端各兩步的內容,你的本地git已經可以和git伺服器進行通訊了,此時我們可以進行常規的專案push和pull了。

3.1為倉庫新增內容

這裡我們隨便把自己的一個專案丟進去(或者隨意建立一個檔案亦可,空資料夾git不會識別)

3.2 提交修改

然後執行以下命令

cd LearnProject/
git add . git commit
-m 初始化專案

這時候,我們就為本地建立了一次commit

3.3push本地修改

執行以下命令

// origin 是遠端倉庫的別名,可以通過 git remote -v 檢視
//master 是預設主分支
git push origin master

見到以上內容,便說明push成功。

3.3git伺服器遠端倉庫檢視commit

進入到伺服器遠端倉庫的目錄

cd /home/git/LearnProject.git
git log