Git服務器搭建簡明教程

Git服務器搭建簡明教程

2. git人工部署。1. 開發人員本地 - git push -> github/gitee 2. 使用ssh終端登錄服務器 git pull -> 服務器

3. git自動化部署。開發人員本地 -git push -> 服務器ssh - hooks -> git checkout -f --> 更新代碼


本文詳解在Ubantu 16下搭建Git服務器,力求讓讀者知其所以然,僅需安裝Git和ssh,而無需其他軟件。

2服務器搭建
在真實服務器或虛擬機裏操作均可。另外,如果用VMware Workstation 16 Player的話,默認不用配置虛擬機網卡,本地機就能Ping通。教程使用普通用戶操作,如果是root用戶,就不用加sudo了,命令將更加簡潔。

2.1安裝Git和SSH
已安裝過的最好也再來一遍,以更新到最新,除非自己很清楚。

sudo apt-get install git
sudo apt-get install ssh
service ssh start
2.2新建用戶
方便管理倉庫,這裏新建一個叫git的用戶,名字可以任意,但推薦取名爲git。建議以後Git的相關的東西,都放到這個用戶目錄下。

注意,中途輸入的密碼是給新建的git用戶設置的密碼,其他直接回車使用默認信息即可。

sudo adduser git
注意,以上只是創建了叫git的用戶,後續的操作並沒有切換到該用戶進行。

2.3創建登錄證書
創建路徑.ssh,然後創建authorized_keys文件,這裏路徑和文件名不能任取,該文件用於存放各個git客戶端的RSA公鑰,只有在這個列表裏的客戶端才能連接git服務。公鑰在下一步創建。

cd /home/git/
sudo mkdir .ssh
sudo touch .ssh/authorized_keys
2.4本地端創建密鑰
注意,這一步在本地端進行。不同的本地用戶有不同的KEY。

ssh-keygen -t rsa
這裏在windows下進行,這個命令可以在CMD、PowerShell或Git bash裏執行。這裏選Git bash,任意空白處右鍵點擊Git bash here,然後右鍵粘貼執行,中途全默認按回車即可。

 如上圖就已經生成,在用戶根目錄的.ssh文件夾內,id_rsa.pub就是我們要的公鑰:

2.5本地端公鑰上傳
這裏只是方法之一,只要能把id_rsa.pub傳到服務器就行。scp是ssh的文件複製命令。

scp id_rsa.pub [email protected]:/home/git/
注意,使用你自己的ip地址。

我們來到上邊.ssh文件夾內右鍵點擊Git bash here,右鍵粘貼執行,中途輸入yes,然後輸入剛纔創建git賬號的密碼,成功後如圖:

 2.6服務器添加用戶公鑰
 注意,在服務器端進行。使用cat指令將公鑰追加到authorized_keys文件。

sudo sh -c "cat id_rsa.pub >> .ssh/authorized_keys"
注意,如果不是root用戶,使用如下方式則會報權限錯誤:

sudo cat id_rsa.pub >> .ssh/authorized_keys
如果想確認是否成功,可以輸入命令查看:

head -n 5 authorized_keys
命令的意思是查看authorized_keys文件前5行的內容。

2.7創建倉庫存放路徑並設置所屬用戶爲git
路徑可任意起名,這裏叫gitrepo。

sudo mkdir gitrepo
sudo chown git:git gitrepo
2.8初始化倉庫並設置所屬用戶爲git
這裏建了一個叫test的倉庫。

cd /home/git/gitrepo
sudo git init --bare test.git
sudo chown -R git:git test.git
因爲這裏的test.git路徑下有多個文件,所以加-R參數遞歸。

到此,git服務器就算搭建完成,URL地址如下:

[email protected]:/home/git/gitrepo/test.git
安全選項
公鑰列表裏的客戶端都可以無需密碼直接可以使用git用戶登錄shell,如:

ssh [email protected]
下面通過修改/etc/passwd實現限制:

sudo nano /etc/passwd
按pagedown翻到最下面:

 找到git用戶,一般都在最後,按鍵盤方向鍵移動光標到最後,將

git:x:1001:1001:,,,:/home/git:/bin/bash
改成:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
改完之後按照提示,分別按ctrl+X,y,回車,實現保存退出,這樣就OK了。

3測試
以下簡單測試Clone和Push,如果你之前用過git,那麼得到上邊的倉庫地址後應該就非常熟悉了。

3.1 Clone
在本地電腦上新建一個文件夾A,右鍵打開Git bash here,試試克隆,會得到一個空的test文件夾。

git clone [email protected]:/home/gitrepo/test.git
注意,ip地址請改成自己的。 還有,這裏並不需要輸入上邊創建git用戶的密碼,如果需要輸入密碼,說明公鑰添加有誤,請重新檢查。

 3.2 Push
進入test文件夾內,右鍵新建文本文檔,內容任意。

右鍵打開Git bash here,添加所有文件,然後提交。

git add -A
git commit
在彈出的文本中填入本次更改日誌,測試用就隨意寫,然後保存關閉。

通過克隆來的遠程倉庫,默認有個別名叫origin,所以推送可以直接這樣:

git push origin master


 3.3再次克隆
新建一個文件夾B,並進入,右鍵打開Git bash here克隆,和之前一樣:

git clone [email protected]:/home/git/gitrepo/test.git
可以看到這個就是剛纔提交的文本文檔:

 4使用TortoiseGit的密碼彈窗問題
TortoiseGit是一個圖形界面的Git,不用打“繁瑣”的命令了。

4.1 嘗試Clone
建一個新建文件夾C,右鍵Git Clone,在URL中填入:

[email protected]:/home/git/gitrepo/test.git


 如果這時直接點擊OK,那麼會有輸入遠端git用戶密碼的提示框,因爲遠端已經有本地機的公鑰了,這顯然不符合常理。這一點TortoiseGit和Git bash不一樣,需要另外加載私鑰。

當然,這裏要是輸入了上邊創建的git用戶的密碼,也能克隆,這個密碼只有管理員知道,自己現在就是管理員,多個git客戶端的情況下別人就不知道了,除非你把密碼告訴世界上所有人咯。

4.2創建PPK私鑰
 找到開始菜單TortoiseGit文件夾下的PuTTYgen打開:

 按圖中步驟操作,中間會有彈窗提示,默認即可。加載2.4步驟創建密鑰生成的私鑰id_rsa,然後另存爲putty_rsa.ppk。

 4.3 Clone
回到新建文件夾C下,右鍵Git Clone,Load Putty Key 中加載剛纔生成的putty_rsa.ppk

 可以看到,已經能正常Clone了。

END
————————————————
版權聲明:本文爲CSDN博主「新塘老笨」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_40692629/article/details/124420970

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章