1.首先須要閱讀 LinuxMint13安裝無密碼訪問git ,在該博文中講到客戶端的id_rsa.pub在執行git
ssh-copy-id -i ~/.ssh/id_rsa.pub git@localhostgithub
之後,id_rsa.pub的內容就被拷貝到了服務器端的/home/git/.ssh/authorized_keys文件中。shell
在本篇博文開始的時候,須要另外選一臺PC機,做爲Git管理和受權者的操做機,和服務器機器已經開發者機器不一樣,須要在受權機生成一對單獨公私鑰對,執行如下命令:服務器
ssh-keygen -f ~/.ssh/gitolite_skwikissh
生成兩個文件分別是:~/.ssh/gitolite_skwiki和~/.ssh/gitolite_skwiki.pubide
將gitolite_skwiki.pub拷貝到服務器的/tmp/目錄,修改權限爲777,命令爲:.net
scp ~/.ssh/gitolite_skwiki.pub git@服務器公網IP:/tmp/gitolite_skwiki.pub開發
此處由於咱們事先作了git帳號的免密碼登陸,因此不會遇到權限問題。get
2.在受權機建立SSH主機別名:源碼
編輯~/.ssh/config文件,沒有該文件的話能夠自動建立並編輯,輸入如下內容:
host GitoliteServer
user git
hostname 主機公網IP
port 22
identityfile ~/.ssh/gitolite_skwiki
3.在服務器端,使用如下命令下載gitolite的源碼:
git clone git://github.com/ossxp-com/gitolite.git
4.在服務器端,建立相關目錄:
sudo mkdir -p /usr/local/share/gitolite/conf
sudo mkdir -p /usr/local/share/gitolite/hooks
5.在服務器端,進入剛clone下來的gitolite/src目錄,進行安裝:
cd gitolite/src
sudo ./gl-system-install /usr/local/bin /usr/local/share/gitolite/conf /usr/local/share/gitolite/hooks
6.在服務器端,安裝平臺的gitolite包:
sudo aptitude install gitolite
最近試了一下這個命令不能用了,後來又試了
sudo apt-get install gitolite
結果仍是不行,提示:
Package 'gitolite' has no installation candidate
後來執行:
sudo apt-get update
仍是不行,繼續使用命令:
sudo apt-get upgrade
仍是不行,看來apt-get 裝不了gitolite,
後來我使用:
sudo apt-get install aptitude
sudo aptitude update
sudo aptitude upgrade
安裝上述步驟安裝了aptitude,繼續執行sudo aptitude install gitolite
仍是不行。。。。
7.在服務器端,這一步特別要當心,首先保證前面的步驟1已經執行了,而後執行如下命令:
cd ~
gl-setup /tmp/gitolite_skwiki.pub
執行之後有一個特別要注意的地方,程序提示編輯.gitolite.rc文件,不少書籍上說保持默認,
實際上須要對.gitolite.rc作必定修改:
$GL_WILDREPOS=0須要修改成1
否則會出現/homg/git/repositories沒法生成的問題,提示沒有設置$GL_WILDREPOS
成功後會生成repositories目錄,裏面有2個子目錄,一個是gitolite-admin.git,一個是testing.git
7.在客戶端,克隆gitolite-admin,輸入如下命令:
git clone GitoliteServer:gitolite-admin.git
8.在客戶端,如今理論上的話使用命令:
ssh GitoliteServer會顯示:
@R W gitolite-admin
之類的,這是正常的
在輸入ssh git@localhost的時候應該進入shell纔對,可是卻出現了這樣的提示:
agent admitted failure to sign using the key
解決辦法是,在客戶端執行如下命令:
ssh-add ~/.ssh/id_rsa