我是在ubuntu和centos系統上分別搭建的git伺服器,大致過程都是相同的:
基本上都是通過軟體源直接安裝的
第一步,給伺服器安裝ssh服務(這個centos自帶了)
apt-get install ssh
第二步,安裝git
ubuntu:
apt-get install git
centos
yum install git
centos還要再多一步,因為centos預設的perl少了這個模組.
yum install 'perl(data::dumper)'
其實到這裡為止就安裝完了,git已經能用了,遠端訪問使用ssh協議,用linux的使用者登入訪問即可.
但是在實際的生產環境中可不能這麼用,伺服器的安全性沒法保障,git的許可權沒法管理.要管理git的許可權有很多種方法,可以自己配置乙個專門的使用者,然後為此使用者設定多個多個公鑰,並且設定這個賬戶只能通過git的shell來訪問就可以了,通過linux自己的許可權管理來控制此使用者對檔案的訪問.大體的思路就是這樣,其實也不是很複雜.但是git既然有專門的工具來控制許可權,就再安裝個工具吧,有兩個工具,乙個是gitosis另乙個是gitolite.我這裡用的是gitolite,下面開始安裝gitolite.
首先確認下,系統上perl是否已經安裝了,ubuntu應該是自帶的,沒有的話用apt-get install perl安裝一下.
然後在伺服器上建立乙個使用者git,按提示為使用者設定密碼.
adduser git
使用者建立成功後切換到這個使用者
su - git
然後拷貝ssh公鑰到伺服器上,生成金鑰的工具很多,xshell,git客戶端都可以.或者用系統自帶的ssh-keygen命令
ssh-keygen
生成一對金鑰,生成過程中可以設定乙個密碼,也可以不設定,生成完後,金鑰在當前使用者的.ssh目錄下(/home/git/.ssh/),金鑰一對,有兩個檔案id_rsa.pub和
id_rsa. 以pub結尾的是公鑰,另乙個是私鑰.把公鑰考出來重新命名為.pub.
以上這些準備工作都做好之後,開始安裝gitolite.
首先,通過git拷貝gitolite
git clone git:
然後到/home/git下建立乙個bin目錄,不建立的話是會報錯的
cd /home/git
mkdir bin
進入剛剛拷貝的gitolite目錄執行安裝
./install -ln
沒有什麼錯誤資訊輸出的話,安裝就初步成功了,現在進入剛剛建立的bin目錄,可以看到裡面多了乙個gitolite檔案,然後執行cd /home/git/bin
gitolite setup -pk /.pub
這個個命令在伺服器上建立了乙個名為gitolite-admin
的git倉庫。
現在你可以看到在git目錄下多了乙個repositories目錄,這是git預設的倉庫的路徑,裡面有兩個倉庫,乙個是gitolite-admin,另乙個是test.
至此,git以及gitolite就安裝完成了
安裝完成後,在本地工具裡用剛剛的秘鑰進行登入,拷貝gitolite-admin倉庫到本地
git clone git@:gitolite-admin
轉殖到本地後,開啟gitolite-admin目錄,可以看到conf和keydir兩個目錄. conf目錄裡是配置檔案,keydir目錄裡是使用者的公鑰,開啟keydir目錄,可以看到剛才安裝的時候匯入的那個公鑰,也就是現在登入的這個使用者的公鑰.如果需要新增使用者,只要把他的公鑰拷貝到keydir這個目錄中即可,非常的簡單.
然後開啟conf目錄下的gitolite.conf檔案
剛開始這個檔案可能是這樣的:
repo gitolite-admin
rw+ = scott
repo testing
rw+ = @all
repo是後面是專案名稱,rw+是許可權,scott是使用者
例如下面這個配置檔案:
首先是定義了兩個組, 乙個是admin管理員組,另乙個是om專案組
然後看到repo om部分,定義了om專案的許可權,整個專案是admin組的使用者有讀寫許可權,master分支是admin組的使用者有讀寫許可權,dev分支是om組使用者有讀寫許可權.如果需要分配唯讀許可權的話分配乙個r即可.
@admin = abc
@om = abc bcd
repo gitolite-admin
rw+ = abc
repo testing
rw+ = @all
repo om
rw+ = @admin
rw+ master = @admin
rw+ dev = @om
這樣就完成了乙個簡單的git伺服器以及許可權配置. Git 搭建git伺服器
環境 ubuntu16.4 1.以root使用者登陸linux後台,執行下面的命令安裝git apt install git2.建立git使用者 adduser git3.建立倉庫目錄 su git mkdir p repository myself.git4.初始化倉庫 cd repository...
Git 搭建Git伺服器
在遠端倉庫一節中,我們講了遠端倉庫實際上和本地倉庫沒啥不同,純粹為了7x24小時開機並交換大家的修改。github就是乙個免費託管開源 的遠端倉庫。但是對於某些視源 如生命的商業公司來說,既不想公開源 又捨不得給github交保護費,那就只能自己搭建一台git伺服器作為私有倉庫使用。搭建git伺服器...
搭建Git伺服器
在 遠端倉庫 一節中,我們講了遠端倉庫實際上和本地倉庫沒啥不同,純粹為了7x24小時開機並交換大家的修改。github就是乙個免費託管開源 的遠端倉庫。但是對於某些視源 如生命的商業公司來說,既不想公開源 又捨不得給github交保護費,那就只能自己搭建一台git伺服器作為私有倉庫使用。搭建git伺...