前端需要進行系統(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
一路默認安裝,完成后使用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
密碼后確認
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_rsa
和id_rsa.pub
文件。其中音瓷,id_rsa
是私鑰对嚼,id_rsa.pub
是公鑰。如果沒有绳慎,則需要創(chuàng)建ssh公鑰和私鑰:
在打開的cmd
窗口中纵竖,使用如下命令創(chuàng)建密鑰對
接下來漠烧,三個回車默認即可。ssh-keygen -t rsa
- 拷貝公鑰到
git
服務(wù)器
將id_rsa.pub
拷貝到服務(wù)器的/home/git/.ssh/
目錄下
4.3 在服務(wù)端天劍客戶端的 ssh
公鑰
- 在服務(wù)器端靡砌,將剛才拷貝的公鑰添加進
authorized_keys
文件中
現(xiàn)在已脓,在客戶端可以直接使用[git@localhost ssh]# cat id_rsa.pub >> authorized_keys
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ù)完善這個搭建過程漫拭!