1. 程式人生 > >linux系統中搭建CS架構的Git伺服器

linux系統中搭建CS架構的Git伺服器

一、首先在自己的伺服器中安裝Git

具體在linux系統中安裝Git與後面怎麼配置這裡就不提了,看這邊部落格:https://blog.csdn.net/JJBOOM425/article/details/83411545

二、在伺服器端建立管理Git倉庫的使用者

在伺服器端的命令列中輸入如下語句,建立一個git使用者,並設定好該使用者的密碼,後面我們將git倉庫的許可權賦給git使用者

$ useradd git
$ passwd git

三、在伺服器端建立git倉庫

這裡我們先建立了一個 /home/data/git/gittest.git  目錄,再使用 git init 指令將這個目錄改變為git倉庫,再進入到 /home/data/git

 目錄下,把gittest.git倉庫的擁有者換成git使用者。

這裡我也嘗試再客戶端進行git clone指令,會報錯,接下去我們來解決這個問題。

雖然不能克隆倉庫,但是會跳出

The authenticity of host '10.1.18.14 (10.1.18.14)' can't be established.
RSA key fingerprint is SHA256:F8hGYvUSA0C6wiOQ6fx+ddguTwxZWEuyDsPrWT7Yt60.
Are you sure you want to continue connecting (yes/no)?

這裡我們輸入yes,會將一些資訊寫入到客戶端的  ~/.ssh/known_hosts 目錄中,儲存的內容如下:


四、在伺服器端git開啟RSA認證

配置檔案放在了 /etc/ssh/sshd_config 中,如下圖,先看看該目錄下是否有該目錄:

sshd_config檔案進行編輯,先看看如下的配置是否被註釋,如果是將前面的 “#”刪除,如下圖:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

sshd_config

修改儲存後,重啟服務 $ /etc/rc.d/init.d/sshd restart ,然後看配置中的 AuthorizedKeysFile 後面寫著 .ssh/authorized_keys,所以得知公鑰的存放路徑是 .ssh/authorized_keys,實際上是  /home/.ssh/authorized_keys,由於管理 Git 服務的使用者是 git,所以實際存放公鑰的路徑是 /home/git/.ssh/authorized_keys,我們檢視該目錄下在 /home/git/ 下是否有 .ssh 目錄,沒有則建立目錄 .ssh與authorized_keys檔案,建立步驟如下:

五、將客戶端公鑰匯入伺服器端 /home/git/.ssh/authorized_keys 檔案

使用 $ ssh [email protected] 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub將客戶端的公鑰匯入檔案(注:這步在客戶端中執行

執行以後,可以在服務端的/home/git/.ssh/authorized_keys中檢視是否新增公鑰,如下圖:

六、在客戶端中克隆伺服器端的倉庫

在客戶端中使用指令 $ git clone [email protected]:/home/data/git/gittest.git 克隆倉庫到客戶端中:

如上,說我克隆了一個空的倉庫,說明我們克隆成功。因為那個建立後我沒有放任何東西,這樣子就成功搭建了Git伺服器。