VirtualBox中CentOS配置git服務(wù)器

前言

在管理自己的代碼的時(shí)候,我一直使用github。有的時(shí)候,私有項(xiàng)目不想公開(kāi),如果還要放到GitHub上,那就必須要花錢。解決這個(gè)問(wèn)題的方法其實(shí)也很簡(jiǎn)單:在自己電腦上用虛擬機(jī)(VirtualBox)跑一個(gè)服務(wù)器(CentOS),配置好ssh和git server。正所謂:史上距離你最近的服務(wù)器。

配置SSH

SSH是程序員鏈接服務(wù)器的居家必備之花露水?。∫虼嗽赩irtualBox中安裝好CentOS(最小化安裝)后,首要工作就是配置它的SSH。

安裝SSH

  1. 更新系統(tǒng):
yum update
  1. 安裝openssh-server:
yum install -y openssl openssh-server
  1. 啟動(dòng)SSH服務(wù):
systemctl start sshd.service
  1. 設(shè)置開(kāi)機(jī)啟動(dòng)ssh服務(wù):
systemctl enable sshd.service

配置免密登錄

1.在客戶端系統(tǒng)(我的是Mac)終端中生成密鑰:

ssh-keygen -t rsa -C "gitopen@gmail.com"

注意輸入自己的郵箱

2.會(huì)提示輸入密碼,但也可以留空(至少我是留空,輸入密碼太麻煩)。

3.完成后會(huì)在.ssh目錄下生成id_rsaid_rsa.pub兩個(gè)密鑰文件。

注意保存這兩個(gè)文件,哪怕你換了電腦,重做了系統(tǒng),也要記得備份。

4.查看VirtualBox中CentOS的ip地址:
?運(yùn)行CentOS,?root用戶登錄?后輸入:

ip addr

如圖所示:
CentOS ip地址

5.在客戶端中用ssh連接CentOS:

ssh root@xxx.xxx.xxx.xxx -p 22

xxx.xxx.xxx.xxx是CentOS的ip地址,此時(shí)還需要輸入CentOS的root賬戶密碼。?此時(shí)?之所用SSH登錄,是為了方便拷貝密鑰到authorized_keys。

6.在VirtualBox中的CentOS服務(wù)器中進(jìn)行配置:

//創(chuàng)建.ssh文件夾:
mkdir .ssh
//創(chuàng)建authorized_keys文件:
touch .ssh/authorized_keys
//修改authorized_keys的權(quán)限:
chmod 600 .ssh/authorized_keys

7.在客戶端(Mac)中查看id_rsa.pub,并復(fù)制其中的密鑰。

cat .ssh/id_rsa.pub

8.在CentOS中打開(kāi)?authorized_keys,將剛才復(fù)制的密鑰粘貼進(jìn)去。

vi .ssh/authorized_keys

9.配置完畢了。

客戶端(Mac)配置CentOS別名

1.為VirtualBox中CentOS的網(wǎng)絡(luò)設(shè)置端口轉(zhuǎn)發(fā)
設(shè)置網(wǎng)絡(luò)類型為NAT,如圖所示:


CentOS NAT網(wǎng)絡(luò)

設(shè)置端口轉(zhuǎn)發(fā),如圖所示:


CentOS 端口轉(zhuǎn)發(fā)

?以上操作是為了在客戶端(Mac)中設(shè)置別名登錄的時(shí)候,將ip地址寫為127.0.0.1,避免每次啟動(dòng)CentOS自動(dòng)獲取ip?的變化,需要修改太麻煩。

2.客戶端(Mac)配置CentOS的別名

vi .ssh/config

輸入以下:

Host cent
    HostName 127.0.0.1
    User root
    Port 4444

cent為別名,可以自由設(shè)置。

很方便的連接CentOS

ssh cent

配置和安裝git服務(wù)器

所有操作可在客戶機(jī)(Mac)上用SSH連接CentOS進(jìn)行

1.CentOS安裝最新git,依賴庫(kù)安裝

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install gcc perl-ExtUtils-MakeMaker

2.卸載低版本Git

yum remove git

3.創(chuàng)建git目錄并進(jìn)入

?cd /usr/local
mkdir git
cd git

4.下載最新版Git 2.13.2

wget https://github.com/git/git/archive/v2.13.2.tar.gz

截至目前最新版是2.13.2,可以到https://github.com/git/git/releases 復(fù)制最新版鏈接進(jìn)行下載。

5.解壓到git目錄中

tar -xzvf v2.13.2.tar.gz

6.安裝v2.13.2版Git

cd git-2.13.2
make prefix=/usr/local/git all
make prefix=/usr/local/git install

編譯過(guò)程稍微較長(zhǎng),耐心等待

7.添加到環(huán)境變量中
打開(kāi)/etc/profile

vi /etc/profile

加入

export PATH="/usr/local/git/bin:$PATH" 

使?配置立即生效

source /etc/profile

8.查看?git版本

git --version

9.將最新版git設(shè)置為系統(tǒng)默認(rèn),避免克隆時(shí)出錯(cuò)

ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack 
ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack 

10.最新版v2.13.2 Git安裝成功

創(chuàng)建git用戶組和添加用戶

1.添加用戶組合用戶?,并設(shè)置密碼

groupadd git
useradd git -g git
passwd git

切換到git賬戶

su -git

2.證書登錄,免密碼?使用git

創(chuàng)建.ssh目錄和.ssh/authorized_keys文件,將?客戶端(Mac)的id_rsa.pub中的密鑰添加到authorized_keys文件中

修改目錄和文件的權(quán)限

chmod 700 .ssh
chmod 600 .ssh/authorized_keys

初始化Git倉(cāng)庫(kù)

1.我的所有倉(cāng)庫(kù)都放在gitrepos目錄下,因此我創(chuàng)建了這個(gè)目錄

cd /home/git
mkdir gitrepos
cd gitrepos

2.初始化第一個(gè)test倉(cāng)庫(kù)

git init --bare test.git

本地客戶端克隆倉(cāng)庫(kù)

在客戶端(Mac)上克隆CentOS?上的test.git庫(kù)

git clone git@cent:/gitrepos/test.git

cent是章節(jié)2.3中設(shè)置的CentOS的SSH連接別名,也可以換成?相應(yīng)的ip地址

禁止Shell登錄

如果你是在遠(yuǎn)程的VPS服務(wù)器上配置git服務(wù)器,那么為了安全考慮,可以禁止Shell登錄;如果像本文的初衷那樣,是為了構(gòu)建??史上距離你最近的服務(wù)器,那么這一步就可以不做。

切換到root賬戶:

su

編輯/etc/passwd文件:

vi /etc/passwd

將這一行:

git:x:502:502::/home/git:/bin/bash

替換為:

git:x:502:502::/home/git:/usr/local/git/bin/git-shell

結(jié)語(yǔ)

通過(guò)用Virtualbox在本機(jī)上構(gòu)建CentOS,方便于開(kāi)發(fā)人員進(jìn)行測(cè)試;通過(guò)在CentOS上搭建自己的Git服務(wù)器,可以將自己獨(dú)立開(kāi)發(fā)的代碼很好的管理與備份。


關(guān)于我

  • 微博:@安卓猴
  • Twitter:@GitOPEN
  • 微信公眾號(hào):Android奇想錄(android_amazing)
掃描二維碼關(guān)注公眾號(hào)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,500評(píng)論 19 139
  • Git的基本工作流程 在工作目錄中修改某些文件。 對(duì)修改后的文件進(jìn)行快照,然后保存到暫存區(qū)域。 提交更新,將保存在...
    夜_雪閱讀 1,377評(píng)論 2 5
  • GIT分布式版本控制系統(tǒng)最佳實(shí)踐 這篇文章來(lái)自于老男孩教育高級(jí)架構(gòu)師班12期的徐亮偉同學(xué)。 首先感謝老男孩架構(gòu)師班...
    meng_philip123閱讀 3,798評(píng)論 4 36
  • 我大學(xué)學(xué)的是酒店管理,以前常聽(tīng)行內(nèi)人說(shuō),要做酒店,不會(huì)喝酒可是不行的呢!把我這個(gè)從小滴酒不沾的乖乖女嚇得不輕。 我...
    原來(lái)是美雙呀閱讀 443評(píng)論 0 1
  • 小時(shí)候一聽(tīng)到巷口有撥浪鼓的聲音,就會(huì)忙不可待的奔出來(lái),這于兒時(shí)的我實(shí)在是一種奇妙的音樂(lè)。 這是貨郎來(lái)了。奶奶會(huì)讓我...
    淺淺水可閱讀 558評(píng)論 3 3

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