基於ubuntu搭建git私人服務器

第一步,服務器安裝git:

sudo apt-get install git

第二步,服務器創建一個git用戶,用來運行git服務:

sudo adduser git

第三步,用戶個人設備創建登錄證書:

3.1 用戶在本地設備生成一對秘鑰:ssh-keygen -t rsa -C "xxx@email"

基於ubuntu搭建git私人服務器

私鑰:id_rsa;公鑰:id_rsa.pub

id_rsa.pub的內容:

基於ubuntu搭建git私人服務器

3.2 git服務器端添加用戶的公鑰:

①創建目錄;

mkdir -p /home/git/.ssh/

cd /home/git/.ssh/

②將3.1中生成公鑰的內容添加到authorized_keys文件中,每行添加一個用戶的公鑰;

vi authorized_keys

基於ubuntu搭建git私人服務器

說明:圖中添加三個用戶的公鑰

第四步,服務器初始化Git倉庫:

先選定一個目錄作為Git倉庫,假定是/home/gitrepo/myblog.git,在/home/gitrepo/目錄下輸入命令:

sudo git init --bare myblog.git

基於ubuntu搭建git私人服務器

Git就會創建一個裸倉庫,裸倉庫沒有工作區,因為服務器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到服務器上去改工作區,並且服務器上的Git倉庫通常都以.git結尾。然後,把owner改為git:

sudo chown -R git:git myblog.git

第五步,警用shell登錄:

出於安全考慮,第二步創建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:

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

改為:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

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

第六步,本地設備克隆git服務器的遠程倉庫:

現在,可以通過git clone命令克隆遠程倉庫了,在各自的電腦上運行:

git clone git@
server:/home/gitrepo/myblog.git (# server:git服務器的ip)

Cloning into 'myblog'...

warning: You appear to have cloned an empty repository.


統一祖國,振興中華


分享到:


相關文章: