基於Gitolite管理的Git服務器搭建v1.0

客戶端:
在此爲方便測試,就不再另外創建用戶,直接使用客戶端root用戶即可生成密鑰對,注意,此處生成的密鑰隊需要和用於ssh鏈接的密鑰對區別開來。

cd /root
ssh-keygen -f ~/.ssh/oreki

將生成的公鑰(my.pub)上傳到服務器的以備用

scp ~/.ssh/oreki.pub drpeng@ip:~

爲以後方便登陸git服務器,需要配置一個訪問git服務器時的配置文件

vim ~/.ssh/config
      host gitolite               #git服務器別名
      user git                    #服務端管理gitolite的用戶
      hostname ip                 #git服務器的主機名
      port  xxx                   #訪問git服務器時的端口號
      identityfile ~/.ssh/oreki   #訪問git服務器時使用的公鑰文件,即剛纔生成的私鑰

保存退出

chmod 600 ~/.ssh/config

服務器端:
安裝git和gitolite
CentOS7的yum源中包含git安裝包,可以直接yum- y install git進行安裝。然後增加drpeng用戶用來管理gitolite,通關gitolite實現對git和git所有用戶的權限管理
1.使用root用戶登陸服務器,並創建git用戶,用以管理git server

 useradd -g root -s /bin/bash drpeng
 echo "gitadmin" | passwd git --stdin

2.切換到drpeng用戶,並確保~/.ssh/authorized_keys文件爲空或者不存在
3.在drpeng用戶下安裝gitolite:

git clone git://github.com/sitaramc/gitolite   #下載gitolite軟件
mkdir -p $HOME/bin
gitolite/install -to $HOME/bin                 #安裝gitolite
export PATH=$PATH:$HOME/bin
echo "PATH=$PATH:$HOME/bin" >> .bashrc
gitolite setup -pk /tmp/my.pub         #將客戶端的root用戶配置爲git的管理員

上面的步驟完成後,我們可以在$HOME下看到一個repositories目錄,裏面有兩個倉庫,分別爲gitolite-admin.git和testing.git,其中gitolite-admin.git爲管理倉庫。
返回客戶端,在客戶端通過root用戶克隆gitolite-admin庫

git clone gitolite:gitolite-admin

進入gitolite-admin倉庫,會看到兩個目錄,分別爲keydir和conf,其中keydir目錄用來管理用戶,在其中可以看到默認有一個文件叫做admin.pub,正是我們之前生成的管理用戶的公鑰文件,如果需要新增git用戶,需要得到新增用戶的公鑰,放入此文件夾中。conf文件中有一個名爲gitolite.conf的文件,管理員可以通過修改此文件來控制git服務器所有用戶的權限

Bonus:
附1:Git基本操作教程
http://www.yiibai.com/git/
附2:Gitolite權限設置教程
https://git-scm.com/book/zh/v1/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-Gitolite

發佈了63 篇原創文章 · 獲贊 56 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章