A. 安裝程式檔案
sudo yum install git python-setuptools
cd /opt
sudo git clone https://github.com/res0nat0r/gitosis.git
cd gitosis/
sudo python setup.py install
B. 添加git使用者
注意,git使用者不要設定密碼,使之不能登入。
sudo adduser -m git
建立git使用者成功後,以後登入git使用者需要首先登入root帳號,再su – git。
C. 在用戶端產生公開金鑰私密金鑰對
用戶端機器上首先需要安裝Git用戶端、TortoiseGit(以Windows為例),首先需要通過Git Bash產生公開金鑰私密金鑰對(需要輸入的參數都留空):
ssh-keygen
這個命令會在目前使用者目錄下的.ssh目錄產生id_rsa和id_rsa.pub兩個檔案,為了能讓TortoiseGit使用私密金鑰,還需要用TortoiseGit的Puttygen工具基於id_rsa檔案產生putty的私密金鑰,然後儲存成.ppk檔案:
D. 初始化gitosis環境
首先需要將產生的公開金鑰上傳到伺服器,開啟id_rsa.pub檔案,看內容最後的使用者名稱是什麼,比如我產生的.pub檔案是這樣的:
ssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEAzX7//rMabzT5CUGdX+oiEq3k3el56yanqcwtpIfQYVJ09pu/1Se2zLCQBVjav10a3bsURoNWE/kqC6znBDtaC5wl8MdhT8hW5+YpMHT0ub6G3UkYJLD4vW7z+J/ziFazSTJEpn/YAALj8tlr880ho8bu+CTUdV0bPrFDngbUakjKTPH4l/vLLYdirrQ1uh/FmZOUWBLr8+JbbFYUZ3SKyID1reS5ekf+7H5w+R0qGJPLeXVzdyKPWY/KHFc/t0nWKxKAZY0cNgdXgjlgZCqEI2+yrtEw+SyBaSz9bx2XwoSkDK0Z2As+68RslrYNOhkpvn5XkWhdIHc3H2N6mIzP2w==wuyf@WUYFWIN
因此改名公開金鑰檔案名稱為wuyf@WUYFWIN.pub,並將其上傳到伺服器,比如/tmp目錄,然後使用這個使用者初始化gitosis:
sudo -H -u git gitosis-init </tmp/wuyf\@WUYFWIN.pub
這個時候在git主目錄的repositories目錄下,已經初始化了用以管理git帳號的gitosis-admin倉庫。
E. 複製gitosis-admin倉庫並配置
現在可以把gitosis-admin倉庫複製到本機,並進行配置,注意,在TortoiseGit用戶端中需要載入上面產生的ppk格式的私密金鑰:
如果要添加其它使用者,在其它使用者機器上執行上面的《C在用戶端產生公開金鑰私密金鑰對》步驟,並且把.pub公開金鑰添加到gitosis-admin倉庫的keydir目錄下,同時在gitosis.conf檔案中為其配置其相應的group。下面是一個gitosis.conf的樣本配置:
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = wuyf@WUYFWIN
[group test]
writable = maventestcitest
members = wuyf@WUYFWIN xxx@YYY
F. 建立其它新倉庫
使用root使用者遠程登入伺服器,並切換到git使用者:
su -
su - git
cd ~/repositories
mkdir test.git
cd test.git
git init --bare
下面就可以在客戶機器上複製這個倉庫並使用了,倉庫地址如下:
git@git_server_name:repository_name.git
其中git_server_name為git伺服器的機器名或IP,repository_name是指定的倉庫名。