搭建git伺服器—建立本地git倉庫

搭建git伺服器—建立本地git倉庫

參考資料:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000

http://blog.csdn.net/u014621130/article/details/70676754

區域網內搭建內部小型git倉庫(本辦法只適用於少人的小團隊搭建屬於自己內部的git伺服器)
伺服器系統為Ubuntu 17.04
系統超級使用者預設為root,普通使用者為locus(假定密碼為locus123456)
第一步:安裝git
1.可以直接通過命令:sudo su 切換到root下安裝,命令是apt-get install git
2.也可以直接在locus使用者下安裝:sudo apt-get install git
注:如果在第一種模式下不需要加sudo命令,反之第二種模式則需要,以下不再解釋

第二步:建立一個使用者,用來執行git服務,此處使用名詞“git”建立該使用者
命令:sudo adduser git
假定密碼為git123456

第三步,建立證書登入:收集所有需要登入的使用者的公鑰,就是他們自己的id_rsa.pub檔案,把所有公鑰匯入到/home/git/.ssh/authorized_keys檔案裡,一行一個。(這個操作只要是實現免密訪問git)

1.如果你是Windows系統則需要安裝git bash,命令:ssh-keygen,產生RSA金鑰對,一般存放在C:\Users\Administrator.ssh 裡面,開啟會有id_rsa 和 id_rsa.pub(公鑰) 兩個檔案,用記事本方式開啟 id_rsa.pub,並複製裡面的金鑰給團隊管理git倉庫的成員進行新增到到/home/git/.ssh/authorized_keys檔案裡

2.如果你是Linux使用者,同樣使用命令:ssh-keygen,(連續按回車鍵,表示使用私鑰時不輸入口令),產生金鑰,並使用命令檢視:sudo cat /home/locus/.ssh/id_rsa.pub,然後複製金鑰到/home/git/.ssh/authorized_keys檔案裡

3.如果沒有該檔案則需要建立它
3.1通過命令:su git 切換到git模式下
su git
mkdir /home/git/.ssh
touch /home/git/.ssh/authorized_keys
3.2 不在git模式下的建立(可能會存在許可權問題)
cd /home/git
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
建立完之後檢視.ssh和authorized_keys檔案的許可權(如圖),記得要在root使用者下檢視
這裡寫圖片描述

這裡寫圖片描述

然後檢視/home/git是否屬於git使用者所有,且許可權為755(如圖),3.1和3.2都需要檢視許可權問題哦!
這裡寫圖片描述

最後需要將/etc/ssh/sshd_config(如果沒有此檔案的話,此處應該先讓主機安裝並啟動ssh服務,http://jingyan.baidu.com/article/9c69d48fb9fd7b13c8024e6b.html)中將RSA認證開啟(如果存在就直接去掉“#”,否則手動新增),該檔案只有在root下有寫許可權,最好切換到root下修改(如圖)
這裡寫圖片描述

第四步,初始化git倉庫,首先選定一個目錄作為git倉庫,假定是/srv/test.git,在/srv 目錄下輸入命令建立一個裸的倉庫。git倉庫通常以.git結尾,所以我們要倉庫裡所有檔案的所有者和所屬組都修改為git:
sudo git init –bare test.git
sudo chown -R git:git test.git
第五步,禁用shell登陸git
出於安全考慮,第二步建立的git使用者不允許通過shell進行登入,這可以通過編輯/etc/passwd檔案(最好切換到root,因為只有root才有寫許可權)完成。找到類似下面的一行:
這裡寫圖片描述

改為

第六步,克隆遠端倉庫,團隊的每個成員在自己的電腦上操作
命令:git clone [email protected]:/srv/test.git
使用者@使用者主機,git是使用者,server是git所在主機的IP
例:git clone [email protected]:/srv/test.git
如果團隊成員都在同一區域網內則可以通過修改檔案/etc/hosts 改變host,使主機直接指向git伺服器
這裡寫圖片描述

至此,一個內部的git伺服器基本搭建完畢