Ubuntu16.04下搭建Git服務(wù)器

由于在github的共有倉庫存放代碼是開源的 , 所以有些需要保密的代碼不方便存放在github上 , 而購買github的私有倉庫的話 , 又好像沒必要 , 因此使用自己的服務(wù)器搭建一個(gè)Git服務(wù)器 , 用于實(shí)現(xiàn)代碼托管.

1.遠(yuǎn)程登錄到Ubuntu服務(wù)器

1.1設(shè)置遠(yuǎn)程請(qǐng)查看: Ubuntu16.04下設(shè)置遠(yuǎn)程登錄
1.2輸入sudo su , 回車 , 輸入登錄密碼 , 切換到root

poorguy@ubuntu:~$ sudo su
[sudo] password for poorguy:
root@ubuntu:/home/poorguy#

2.安裝Git

2.1安裝git:

root@ubuntu:/home/poorguy# apt-get install git

2.2配置git , 配置完后 , git config --list 可以查看配置信息

root@ubuntu:/home/git# git config --global user.name "your name"
root@ubuntu:/home/git# git config --global user.email "your email"
root@ubuntu:/home/git# git config --list
user.name=your name
user.email=your email
root@ubuntu:/home/git#

3.創(chuàng)建git用戶

3.1創(chuàng)建一個(gè)git的用戶(該用戶是服務(wù)器的用戶) , 用于運(yùn)行g(shù)it服務(wù):
期間要輸入兩次新增的git用戶的登錄密碼 , 還有g(shù)it用戶的相關(guān)信息 , 可以使用默認(rèn)的 , 直接回車即可

Adding user `git' ...
Adding new group `git' (1001) ...
Adding new user `git' (1001) with group `git' ...
Creating home directory `/home/git' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for git
Enter the new value, or press ENTER for the default
        Full Name []: git
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n]

3.2切換到/home目錄下 , 可以看到 , 新增了一個(gè)git文件夾 , 這就是剛剛創(chuàng)建的git用戶

root@ubuntu:/home/poorguy# cd ..
root@ubuntu:/home# ls
git  poorguy  ScatterDemo
root@ubuntu:/home#

3.3修改/home/git的權(quán)限

root@ubuntu:/home/poorguy# chmod 755 /home/git

4.在git用戶下添加SSH信任

4.1使用su git切換到git用戶

root@ubuntu:/home/poorguy# su git
git@ubuntu:/home/poorguy$

4.2在/home/git目錄下創(chuàng)建.ssh文件夾 , 并設(shè)置讀寫權(quán)限 , 700的意思是 只有擁有者有讀 , 寫 , 執(zhí)行權(quán)限

git@ubuntu:~$ mkdir .ssh && chmod 700 

4.3在.ssh目錄下 , 創(chuàng)建authorized_keys文件 , 并設(shè)置讀寫權(quán)限 , 600的意思是只有擁有者有讀 , 寫權(quán)限

touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

把要連接Git服務(wù)器的PC(比如你的筆記本)中的公鑰 , 這個(gè)文件就是在C:\Users\Administrator\.sshid_ras.pub文件 , 把該文件復(fù)制到/home/git/.ssh目錄下 , 然后將id_rsa.pub文件追加到authorized_keys文件中:

git@ubuntu:~/.ssh$ ls
authorized_keys  id_rsa.pub
git@ubuntu:~/.ssh$ cat id_rsa.pub >> authorized_keys
git@ubuntu:~/.ssh$

5.在git用戶下搭建git倉庫

5.1在/home/git目錄下 , 新建一個(gè)GitProjectPlace文件夾 , 用于存放所有的項(xiàng)目 , 然后在該目錄下新建一個(gè)testProject.git文件夾 , 用于測(cè)試.

git@ubuntu:~$ mkdir GitProjecPlace
git@ubuntu:~$ cd GitProjecPlace/
git@ubuntu:~/GitProjecPlace$ mkdir testProject.git
git@ubuntu:~/GitProjecPlace$ cd testProject.git/
git@ubuntu:~/GitProjecPlace/testProject.git$ git init --bare
Initialized empty Git repository in /home/git/GitProjecPlace/testProject.git/
git@ubuntu:~/GitProjecPlace/testProject.git$

5.2修改git倉庫的所屬者

git@ubuntu:~/GitProjecPlace$ chown -R git:git testProject.git

6.克隆倉庫到本地

6.1在本地電腦(確認(rèn)已經(jīng)安裝git環(huán)境)中 , 切換到工作目錄 , 使用git bash打開 , 執(zhí)行以下命令:

Administrator@2013-20160515XD MINGW64 /e/fry_work/PoorGuy/GitVir
$ git clone git@192.168.74.128:/home/git/GitProjecPlace/testProject.git
Cloning into 'testProject'...
Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa':
warning: You appear to have cloned an empty repository.

會(huì)有提示說 , 這是一個(gè)空的倉庫.接下來 , 就可以往倉庫上傳代碼了.

7.限制Git用戶使用SSH遠(yuǎn)程登錄服務(wù)器

由于將id_rsa.pub添加到了authorized_keys中 , 所以被添加的開發(fā)者是可以通過SSH遠(yuǎn)程登錄到服務(wù)器的 , 可是開發(fā)者應(yīng)該只能擁有pullpush , 而不能被允許直接登錄服務(wù)器 , 這樣會(huì)有一定的風(fēng)險(xiǎn) , 所以要限制通過SSH登錄服務(wù)器.方法就是將git用戶的shell換成git-shell , git-shell能夠限制開發(fā)者只能通過SSH進(jìn)行pull , push等與git相關(guān)的操作.
7.1使用cat /etc/shells查看git-shell是否已經(jīng)存在shells文件中

root@ubuntu:/etc# cat shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
root@ubuntu:/etc#

7.2如果現(xiàn)在git-shell不存在shells中 , 使用which git-shell查看git-shell的安裝位置 , 一般在/usr/bin/git-shell

root@ubuntu:/etc# which git-shell
/usr/bin/git-shell
root@ubuntu:/etc#

7.3使用vim shells , 將git-shell的安裝路徑添加進(jìn)shell文件中

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/git-shell

7.4將shell換成git-shell

root@ubuntu:/etc# sudo chsh git -s $(which git-shell)
root@ubuntu:/etc#

7.5在本地使用SSH遠(yuǎn)程登錄測(cè)試是否能夠登錄

$ ssh git@192.168.74.128
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to 192.168.74.128 closed.
# 服務(wù)器禁止登錄

至此 , 一個(gè)私人的Git服務(wù)器就大致搭建完成了.

You only get one life , it`s actually your duty to live it as fully as possible.
生命只有一次 , 你有責(zé)任讓它活出精彩.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市远豺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌住拭,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,378評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熊泵,死亡現(xiàn)場(chǎng)離奇詭異敞恋,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)辱匿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炫彩,“玉大人匾七,你說我怎么就攤上這事〗ぃ” “怎么了昨忆?”我有些...
    開封第一講書人閱讀 168,983評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)杉允。 經(jīng)常有香客問我邑贴,道長(zhǎng),這世上最難降的妖魔是什么叔磷? 我笑而不...
    開封第一講書人閱讀 59,938評(píng)論 1 299
  • 正文 為了忘掉前任痢缎,我火速辦了婚禮,結(jié)果婚禮上世澜,老公的妹妹穿的比我還像新娘。我一直安慰自己署穗,他們只是感情好寥裂,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著案疲,像睡著了一般封恰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上褐啡,一...
    開封第一講書人閱讀 52,549評(píng)論 1 312
  • 那天诺舔,我揣著相機(jī)與錄音,去河邊找鬼。 笑死低飒,一個(gè)胖子當(dāng)著我的面吹牛许昨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播褥赊,決...
    沈念sama閱讀 41,063評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼糕档,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了拌喉?” 一聲冷哼從身側(cè)響起速那,我...
    開封第一講書人閱讀 39,991評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎尿背,沒想到半個(gè)月后端仰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,522評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡田藐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評(píng)論 3 342
  • 正文 我和宋清朗相戀三年荔烧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坞淮。...
    茶點(diǎn)故事閱讀 40,742評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡茴晋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出回窘,到底是詐尸還是另有隱情诺擅,我是刑警寧澤,帶...
    沈念sama閱讀 36,413評(píng)論 5 351
  • 正文 年R本政府宣布啡直,位于F島的核電站烁涌,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏酒觅。R本人自食惡果不足惜撮执,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舷丹。 院中可真熱鬧抒钱,春花似錦、人聲如沸颜凯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽症概。三九已至蕾额,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間彼城,已是汗流浹背诅蝶。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評(píng)論 1 274
  • 我被黑心中介騙來泰國打工退个, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人调炬。 一個(gè)月前我還...
    沈念sama閱讀 49,159評(píng)論 3 378
  • 正文 我出身青樓语盈,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親筐眷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子黎烈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容