客戶端:
在此爲方便測試,就不再另外創建用戶,直接使用客戶端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