CentOS7下Git私服搭建

前端需要進行系統(tǒng)開發(fā)時,需要做版本控制,所以打算使用Git進行協(xié)同開發(fā),但是工作內(nèi)容不好放在github公有倉庫托管,也沒有資金購買私有托管服務(wù),所以需要自己搭建一個Git私有倉庫。

搭建環(huán)境為:CentOS7

yum源倉庫里的Git版本比較老,是1.8.3.1,而Git最新版本已經(jīng)到2.17.0了,所以使用yum源安裝的Git版本不是最新的,如果有需要安裝最新版本的需要進行源碼安裝。本文只記錄使用yum源安裝的過程,不討論源碼安裝。

1、首先確保服務(wù)器能上外網(wǎng)。
2、安裝Git

切換到root用戶下進行安裝操作

[root@localhost ~]# su root

安裝Git

[root@localhost ~]# yum install git

一路默認(rèn)安裝,完成后使用git --version可以查看git版本

[root@localhost ~]# git --version
git version 1.8.3.1
[root@localhost ~]# 
3、添加git管理的賬戶并設(shè)置密碼
[root@localhost ~]# adduser git
[root@localhost ~]# passwd git

輸入git密碼后確認(rèn)

4、git倉庫權(quán)限管理

由于開發(fā)團隊很小,所以通過ssh公鑰進行管理。

4.1 配置服務(wù)端的ssh訪問
  • 切換到git用戶
    [root@localhost ~]# su - git
    
  • 進入git賬戶的主目錄
    [git@localhost ~]# cd /home/git
    
  • 創(chuàng)建.ssh的配置,如果此文件夾已經(jīng)存在,則忽略該步驟
    [git@localhost git]# mkdir .ssh
    
  • 進入.ssh目錄,并創(chuàng)建authorized_keys文件,此文件存放客戶端遠程訪問ssh的公鑰
    [git@localhost git]# cd /home/git/.ssh
    [git@localhost .ssh]# touch authorized_keys
    
  • 設(shè)置權(quán)限
    如果不設(shè)置這些權(quán)限,在客戶端連接該倉庫時,不能免密登錄
    [git@localhost .ssh]# chmod 700 /home/git/.ssh
    [git@localhost .ssh]# chmod 600 /home/git/.ssh/authorized_keys
    

至此,服務(wù)端的配置基本已經(jīng)完成,接下來就需要在客戶端生成公鑰文件,并將該文件拷貝到服務(wù)器端。

4.2、配置客戶端私鑰,并將其上傳到服務(wù)器端
  • 檢查是否已經(jīng)有ssh公鑰和私鑰
    我們開發(fā)環(huán)境是Windows,所以在C:\Users\用戶名\.ssh下查找是否已經(jīng)有id_rsaid_rsa.pub文件。其中,id_rsa是私鑰,id_rsa.pub是公鑰。如果沒有,則需要創(chuàng)建ssh公鑰和私鑰:
    在打開的cmd窗口中,使用如下命令創(chuàng)建密鑰對
    ssh-keygen -t rsa
    
    接下來,三個回車默認(rèn)即可。
  • 拷貝公鑰到git服務(wù)器
    id_rsa.pub拷貝到服務(wù)器的 /home/git/.ssh/目錄下
4.3 在服務(wù)端天劍客戶端的 ssh公鑰
  • 在服務(wù)器端,將剛才拷貝的公鑰添加進authorized_keys文件中
    [git@localhost ssh]# cat id_rsa.pub >> authorized_keys
    
    現(xiàn)在,在客戶端可以直接使用ssh的方式登錄服務(wù)器了(這樣不安全,所以接下來要禁止該賬號的shell登錄)
    在客戶端測試用ssh登錄服務(wù)器:
    ssh git@192.168.100.10
    
4.4 在服務(wù)端創(chuàng)建測試git倉庫

進入服務(wù)器終端
切換到git用戶

[root@localhost ~]# su - git

進入git賬號的用戶主目錄

[git@localhost ~]# cd /home/git

創(chuàng)建測試倉庫文件夾test.git,然后進入test.git目錄下

[git@localhost git]# mkdir test.git
[git@localhost git]# cd test.git

初始化該測試倉庫

[git@localhost test.git]# git init --bare

現(xiàn)在,客戶端就可以clone或者remote add此倉庫了

4.4 在客戶端連接git遠程倉庫

建一個空文件夾,叫git-test
在該目錄下執(zhí)行

git init

向該目錄下添加一張圖片,名為test.jpg,繼續(xù)執(zhí)行

git add "test.jpg"
git commit -m "add an image"

此時,已經(jīng)將該圖片添加到本地倉庫,接下來就需要將本地倉庫和遠程倉庫進行連接并同步

git remote add origin git@192.168.100.10:test.git
git push -u origin master
4.5 禁用客戶端的ssh登錄

雖然,現(xiàn)在已經(jīng)可以使用git私服了,但是客戶端可以使用ssh登錄,這樣很不安全,接下來就要禁用客戶端的ssh登錄

  • /home/git下創(chuàng)建一個git-shell-commands目錄,并把目錄的擁有者設(shè)置為git賬戶。
[root@localhost ~]# su - git
[git@localhost ~]# mkdir /home/git/git-shell-commads
  • 修改/etc/passwd文件
[root@localhost ~]# vi /etc/passwd

找到下面這句,將其注釋掉(1000可能為別的數(shù)字,在前面加一個‘#’符號即為注釋)
git:x:1000:1000::/home/git:/bin/bash
然后在后面添加一行
git:x:1000:1000::/home/git:/bin/git-shell
然后退出保存,此時客戶端再使用ssh登錄,便會提示如下信息:

$ ssh git@192.168.10.10
Last login: Wed May  9 22:49:57 2018
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to 192.168.100.10 closed.
5 結(jié)尾

現(xiàn)在,Git私服搭建基本已經(jīng)完成,但是還有好多問題自己沒有摸索明白,在以后的使用中,可能會不斷學(xué)習(xí)各種操作,到時候再繼續(xù)完善這個搭建過程!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容