詳解在阿里云上搭建自己的git服務(wù)器
這篇文章我就來(lái)介紹一下如何在一臺(tái)全裸的阿里云主機(jī)上搭建自己的git服務(wù)器。詳細(xì)的介紹了每個(gè)步驟,具體如下:
1. 安裝git
首先安裝git,一般而言,現(xiàn)在的服務(wù)器已經(jīng)內(nèi)置了git安裝包,我們只需要執(zhí)行簡(jiǎn)單的安裝命令即可安裝。比如:
$ yum install git # centos $ apt-get install git # ubuntu
上面是直接用root登陸服務(wù)器進(jìn)行操作,也是為了演示方便。
git和mysql不一樣,mysql在安裝時(shí),得安裝mysql-server,即mysql服務(wù)器,git是分布式的,每一個(gè)安裝了git的電腦,既是客戶端,也是服務(wù)器,git與git之間可以相互通信,而我們所謂的git服務(wù)器,實(shí)際上和我們自己的電腦沒(méi)有什么本質(zhì)上的差別。但是,我們?yōu)榱烁行У墓芾眄?xiàng)目,都采取中心化的管理方式,因此創(chuàng)建一個(gè)“git服務(wù)器”,作為其他所有人提交代碼的最終終端。
2.創(chuàng)建git用戶及權(quán)限
我們當(dāng)然不允許直接使用root來(lái)進(jìn)行通信交互了,所以,我們創(chuàng)建一個(gè)git用戶來(lái)作為今后提交代碼的用戶。
$ adduser git
執(zhí)行這條命令之后,你發(fā)現(xiàn)在/home目錄下多了一個(gè)git目錄,按理來(lái)說(shuō),現(xiàn)在,你的系統(tǒng)中多了這個(gè)git用戶,并且家目錄在/home/git。但是,我們并不希望這個(gè)用戶通過(guò)ssh連接到服務(wù)器上面去,所以,我們要禁止這個(gè)用戶使用ssh連接上去進(jìn)行操作。我們通過(guò)編輯一個(gè)權(quán)限文件來(lái)處理:
$ vi /etc/passwd
找到類似于
git:x:1001:1001:,,,:/home/git:/bin/bash
這樣的行,你看到那個(gè)末尾的/bin/bash,就是允許ssh連接操作的權(quán)限,我們把它改為/user/bin/git-shell,結(jié)果如下:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
這樣處理好,git就不能ssh連上去了(實(shí)際上是可以的,只不過(guò)會(huì)閃退)。
我們還得給git分配一個(gè)密碼,執(zhí)行:
$ passwd git 123456(你的密碼)
這個(gè)密碼用在你后面提交代碼的時(shí)候使用。
3.公鑰
這個(gè)是git里面比較特殊的一步操作,通信的時(shí)候,客戶端與服務(wù)器需要一個(gè)證書(shū)進(jìn)行驗(yàn)證。操作方法很簡(jiǎn)單,首先在你自己的電腦上(ubuntu)生成自己的一個(gè)公鑰:
$ cd ~ $ ssh-keygen -t rsa
這時(shí)你自己電腦上就有一個(gè)公鑰了,但是在哪里呢?在.ssh目錄下,.開(kāi)頭的文件夾都是隱藏的,但是可以cd進(jìn)去。
$ cd .ssh $ vi id_rsa.pub
這樣就能看到你的公鑰了,把所有的內(nèi)容復(fù)制下來(lái)。接下來(lái),我們?nèi)セ胤?wù)器上面操作。
$ cd /home/git/ $ mkdir .ssh $ cd .ssh $ vi authorized_keys
如果是裸機(jī),服務(wù)器上面/home/git目錄下應(yīng)該沒(méi)有.ssh目錄,所以我們自己創(chuàng)建,打開(kāi)(自動(dòng)創(chuàng)建)authorized_keys之后,把剛才復(fù)制下來(lái)的公鑰黏貼進(jìn)去,ok了,保存退出。
使用證書(shū),主要是為了無(wú)需密碼就可以提交代碼。
4.初始化一個(gè)git倉(cāng)庫(kù)
我習(xí)慣把這類東西丟到/var下去,所以,我們?cè)?var下面創(chuàng)建一個(gè)git目錄
$ cd /var $ mkdir git $ chown -R git:git git $chmod 777 git $ cd git
接下來(lái),我們用git命令初始化一個(gè)倉(cāng)庫(kù):
$ git init --bare arepoforyourproject.git
初始化完成之后,這個(gè)空的倉(cāng)庫(kù)就OK了。
這里有一個(gè)細(xì)節(jié),就是.git目錄必須要有可讀寫(xiě)權(quán)限,因?yàn)楫?dāng)我們?cè)趐ush的時(shí)候,是使用git用戶推送到服務(wù)器上面去,會(huì)有一個(gè)寫(xiě)入的過(guò)程,如果不賦予可寫(xiě)權(quán)限,push就會(huì)失敗。
5.克隆試試
回到你本地的電腦上,我們通過(guò)克隆來(lái)試試倉(cāng)庫(kù)是否可以使用:
$ git clone git@10.0.0.121:/var/git/arepoforyourproject.git
然后會(huì)提示你輸入git的密碼,輸入進(jìn)去,然后會(huì)再提示你克隆了一個(gè)空白的版本庫(kù)。這說(shuō)明服務(wù)器已經(jīng)OK了。
6.多用戶和權(quán)限管理
如果團(tuán)隊(duì)很小,把每個(gè)人的公鑰收集起來(lái)放到服務(wù)器的/home/git/.ssh/authorized_keys文件里就是可行的。如果團(tuán)隊(duì)有幾百號(hào)人,就沒(méi)法這么玩了,這時(shí),可以用Gitosis來(lái)管理公鑰。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
云服務(wù)器Centos中安裝Docker的方法小結(jié)
Docker是一個(gè)開(kāi)源的應(yīng)用容器引擎,利用操作系統(tǒng)本身已有的機(jī)制和特性,可以實(shí)現(xiàn)遠(yuǎn)超傳統(tǒng)虛擬機(jī)的輕量級(jí)虛擬化,CentOS是Linux發(fā)行版之一,本文給大家介紹云服務(wù)器Centos中安裝Docker的方法,感興趣的朋友一起看看吧2023-12-12
LVS(Linux Virtual Server)Linux 虛擬服務(wù)器介紹及配置(負(fù)載均衡系統(tǒng))
LVS(Linux Virtual Server) 是Unix-like系統(tǒng)中的一個(gè)虛擬服務(wù)器,是國(guó)內(nèi)貢獻(xiàn)給開(kāi)源組織的一個(gè)最優(yōu)秀的項(xiàng)目之一2012-05-05
游戲服務(wù)器中的Netty應(yīng)用以及源碼剖析
這篇文章主要為大家介紹了游戲服務(wù)器中的Netty應(yīng)用以及源碼剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
基于Tcl語(yǔ)言配置簡(jiǎn)單網(wǎng)絡(luò)環(huán)境過(guò)程解析
這篇文章主要介紹了基于Tcl語(yǔ)言配置簡(jiǎn)單網(wǎng)絡(luò)環(huán)境過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
服務(wù)器壓力測(cè)試概念及方法(TPS/并發(fā)量)
本文詳細(xì)講解了服務(wù)器壓力測(cè)試概念及方法(TPS/并發(fā)量),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12
Hadoop3.2.0集群搭建常見(jiàn)注意事項(xiàng)
這篇文章主要介紹了Hadoop3.2.0集群搭建常見(jiàn)注意事項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
Keepalived+HAProxy高可用集群K8S實(shí)現(xiàn)
這篇文章主要為大家介紹了Keepalived+HAProxy實(shí)現(xiàn)高可用集群K8S的構(gòu)建方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03

