VirtualBox中CentOS配置git服務器

前言

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

配置SSH

SSH是程序員鏈接服務器的居家必備之花露水??!因此在VirtualBox中安裝好CentOS(最小化安裝)后,首要工作就是配置它的SSH。

安裝SSH

  1. 更新系統:
yum update
  1. 安裝openssh-server:
yum install -y openssl openssh-server
  1. 啟動SSH服務:
systemctl start sshd.service
  1. 設置開機啟動ssh服務:
systemctl enable sshd.service

配置免密登錄

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

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

注意輸入自己的郵箱

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

3.完成后會在.ssh目錄下生成id_rsaid_rsa.pub兩個密鑰文件。

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

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

ip addr

如圖所示:
CentOS ip地址

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

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

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

6.在VirtualBox中的CentOS服務器中進行配置:

//創建.ssh文件夾:
mkdir .ssh
//創建authorized_keys文件:
touch .ssh/authorized_keys
//修改authorized_keys的權限:
chmod 600 .ssh/authorized_keys

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

cat .ssh/id_rsa.pub

8.在CentOS中打開?authorized_keys,將剛才復制的密鑰粘貼進去。

vi .ssh/authorized_keys

9.配置完畢了。

客戶端(Mac)配置CentOS別名

1.為VirtualBox中CentOS的網絡設置端口轉發
設置網絡類型為NAT,如圖所示:


CentOS NAT網絡

設置端口轉發,如圖所示:


CentOS 端口轉發

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

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

vi .ssh/config

輸入以下:

Host cent
    HostName 127.0.0.1
    User root
    Port 4444

cent為別名,可以自由設置。

很方便的連接CentOS

ssh cent

配置和安裝git服務器

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

1.CentOS安裝最新git,依賴庫安裝

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

2.卸載低版本Git

yum remove git

3.創建git目錄并進入

?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 復制最新版鏈接進行下載。

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

編譯過程稍微較長,耐心等待

7.添加到環境變量中
打開/etc/profile

vi /etc/profile

加入

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

使?配置立即生效

source /etc/profile

8.查看?git版本

git --version

9.將最新版git設置為系統默認,避免克隆時出錯

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安裝成功

創建git用戶組和添加用戶

1.添加用戶組合用戶?,并設置密碼

groupadd git
useradd git -g git
passwd git

切換到git賬戶

su -git

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

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

修改目錄和文件的權限

chmod 700 .ssh
chmod 600 .ssh/authorized_keys

初始化Git倉庫

1.我的所有倉庫都放在gitrepos目錄下,因此我創建了這個目錄

cd /home/git
mkdir gitrepos
cd gitrepos

2.初始化第一個test倉庫

git init --bare test.git

本地客戶端克隆倉庫

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

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

cent是章節2.3中設置的CentOS的SSH連接別名,也可以換成?相應的ip地址

禁止Shell登錄

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

切換到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

結語

通過用Virtualbox在本機上構建CentOS,方便于開發人員進行測試;通過在CentOS上搭建自己的Git服務器,可以將自己獨立開發的代碼很好的管理與備份。


關于我

  • 微博:@安卓猴
  • Twitter:@GitOPEN
  • 微信公眾號:Android奇想錄(android_amazing)
掃描二維碼關注公眾號
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,363評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,497評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,305評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,962評論 1 311
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,727評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,193評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,257評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,411評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,945評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,777評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,978評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,519評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,216評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,657評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,960評論 2 373

推薦閱讀更多精彩內容

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