1. 程式人生 > 其它 >使用Gitolite搭建輕量級的Git伺服器

使用Gitolite搭建輕量級的Git伺服器

使用Gitolite搭建輕量級的Git伺服器

1. 新增git使用者

  useadd git

  passwd    // 為git設定密碼

2. 安裝git

  yum install git -y

3. 安裝Gitolite

  1. 在 /home/git/ 下,mkdir bin , mkdir key

  2. 在 /home/git/ 下,git clone https://github.com/sitaramc/gitolite

  3. 在 /home/git/ 下,${HOME}/gitolite/install -to ${HOME}/bin

  此時已經可以克隆了 git clone [email protected]:testing.git,只不過要輸入伺服器git使用者的密碼

4. 為登入者新增公鑰

  比如A需要git clone 這臺gitolite伺服器,A需要把它的公鑰放到伺服器上

  A如果還沒有私鑰公鑰,就用ssh-keygen -t rsa 生成,在任意一臺機器上生成這對金鑰都行,

  然後把私鑰 id_rsa 放在A主機A家目錄 .ssh/ 下,把公鑰 id_rsa.pub 放在gitolite伺服器的 /home/git/key/ 下

  把A的公鑰加到gitolite金鑰管理庫中,這步很關鍵,方法如下:

  在gitolite伺服器 /home/git/ 下,${HOME}/bin/gitolite setup -pk ./key/id_rsa.pub

5. A主機可以git clone [email protected]:testing.git 了

  

注意事項:

  A把它的公鑰 id_rsa.pub 放在gitolite伺服器 /home/git/key/ 下,如果B也把它的公鑰 id_rsa.pub 放在gitolite伺服器 /home/git/key/ 下,id_rsa.pub就會衝突

  所以 A 應該重新命名它的公鑰 id_rsa.pub,比如重新命名為 A_id_rsa.pub。那麼 B 也應該重新命名它的公鑰 id_rsa.pub 為 B_id_rsa.pub。

  把A的公鑰加到gitolite金鑰管理庫中,${HOME}/bin/gitolite setup -pk ./key/id_rsa.pub,這條命令會往 伺服器 git家目錄 .ssh/authorized_keys加入一些東西,正因為此,你才能用自己的私鑰 不用密碼 克隆倉庫

  所以 伺服器下 git 家目錄 .ssh/authorized_keys除了 這條命令 ${HOME}/bin/gitolite setup -pk ./key/id_rsa.pub 往 authorized_keys加東西,你不能往裡面加公鑰,雖然能加,但會出現這種情況

fatal: 'gitolite-admin' does not appear to be a git repository

  這種情況出現的原因,是A將它的公鑰直接放到伺服器 ~git/.ssh/authorized_keys 裡,這樣A 克隆 git clone [email protected]:gitolite-admin.git 雖然不用密碼能通過,能通過是因為它的公鑰在 ~git/.ssh/authorized_keys裡,但A通過後,此時位於伺服器的~git/ ,在git的家目錄裡,並不是在伺服器的 ~git/repositories/ 下,所以想要克隆成功,需要這樣 git clone [email protected]:repositories/gitolite-admin.git

為了不出現這種情況,不要直接將你的公鑰放進authorized_keys裡,而是先放到伺服器 ~git/key/your_rsa.pub,再${HOME}/bin/gitolite setup -pk ./key/your_rsa.pub,由這條命令將你的公鑰加入到authorized_keys裡

再強調一遍: gitolite伺服器的 ~git/.ssh/authorized_keys檔案只能由${HOME}/bin/gitolite setup -pk ./key/id_rsa.pub 這條命令往裡加公鑰,不能直接加,如cat your_rsa.pub >> authorized_keys。