Ubuntu 18.04搭建Git服務器

嵌入式 166瀏覽

學習鏈接:博客園廖雪峰

前言

前面已經貼了兩個鏈接,為什么還要再寫一篇呢,因為可能由于個人能力問題,我覺得上面兩篇寫的都有點簡略,有些地方不太好理解,并不能一次性成功搭建,所以想根據自己踩過的坑再寫一篇更詳細的。所以如果有用戶搜到了這篇文章且看完沒有成功搭建,請評論中回復讓我知道原因繼續完善,謝謝!

另外,本次安裝不涉及權限管理,因為只是自己測試,還未用于生產環境。

準備環境

本次測試使用兩臺虛擬機,一臺Ubuntu系統作為Git服務器(以下稱為服務器),一臺CentOS系統作為客戶端(以下稱為客戶端)

配置服務器

第一步:檢查服務器是否安裝了ssh服務,這個沒記錯的話Ubuntu是自帶有的,如果沒有安裝即可

第二步:安裝git,具體方法請看官網文檔,包含了UbuntuCentOS系統的安裝方法,安裝完畢在終端中執行git --version命令,如正常輸出版本號,說明安裝成功。

第三步:修改hsots配置,在hosts文件中將服務器的IP指向gitserver,將客戶端的IP指向gitclient,如下圖:

 

第四步:在服務器上創建git用戶,

sudo useradd git

然后賦予管理員權限,即將其加到/etc/sudoers文件中,添加時參考root的配置即可

第五步:在服務器上創建代碼倉庫,這里我在/home/git/repo下執行命令:

git bare init /home/git/sample.git

成功執行后在服務器上創始了sample.git文件夾,如下圖:

 

然后將該文件夾所有者設為git,執行如下命令:

sudo chown -R git:git sample.git

到此,Ubuntu服務器的配置完畢,接下來配置客戶端。

客戶端配置

第一步:同樣,在客戶端確認ssh是否有安裝,并安裝git

第二步:修改客戶端的hosts文件,將服務器的IP指向gitserver

第三步:執行ssh-keygen -t rsa命令生成密鑰,如下圖:

注意,不要輸入文件名,一直回車就好,不要輸入任何內容,全部使用默認配置,成功后會自動在用戶的home目錄下創建.ssh文件夾,并將生成的公鑰和密鑰放到這個文件夾下。這里是要設置無密碼登錄服務器,因為服務器的密碼不可能讓所有人知道,提交代碼時使用密鑰進行身份驗證

第四步:將.ssh文件夾下生成的id_rsa.pub文件上傳到服務器git用戶home目錄(/home/git)下,在服務器上使用git用戶登錄,查看home目錄下是否有.ssh文件夾,如果沒有,手動創建,如果有進入其中查看是否有名為authorized_keys文件,如果沒有,同樣手動創建即可。確認authorized_keys文件存在后執行cat ../id_rsa.pub>>authorized_keys命令,將客戶端用戶公鑰導入到驗證文件。

第五步:在客戶端上新建存儲代碼的文件夾,進入該文件夾,執行git clone [email protected]:/home/git/repo/sample.git命令,該命令的作用是使用git用戶身份從服務器拉取代碼,若可正常拉代碼且無需輸入密碼,說明搭建成功。之后就可以像公共倉庫一樣進行代碼管理了。

善后

所有用戶的公鑰導入完畢后,最好git用戶登錄權限(git用戶應該只用于代碼管理,不用作其它事情,如果再要導入新的用戶公鑰可以用其它有管理員權限的帳戶),具體做法是修改/etc/passwd文件中git的設置,如下圖:

將命令執行環境設成gitshell/usr/bin/git-shell而非/bin/bash,這樣git用戶無法通過ssh工具如putty遠程登錄系統了,但是可以通過sshgit中進行各種操作。

 

王中王鉄算盘历史开奖记录