2012-09-27 121 views
7

我想讓git服務器庫運行。 我沒有安裝gitolitegit clone git @ myserver:gitolite-admin失敗

運行通過ssh git的信息的服務器回答

ssh [email protected] info 

hello Brian, this is [email protected] running gitolite3 on git 1.6.3.2 
R W testing 

當試圖克隆gitolite管理員倉庫,我得到以下錯誤

git clone [email protected]:gitolite-admin 

Cloning into 'gitolite-admin'... 
FATAL: R any gitolite-admin Brian DENIED by fallthru 
(or you mis-spelled the reponame) 
fatal: The remote end hung up unexpectedly 

同樣的事情發生的時候此語法

git clone ssh://[email protected]/gitolite-admin 
Cloning into 'gitolite-admin'... 
FATAL: R any gitolite-admin Brian DENIED by fallthru 
(or you mis-spelled the reponame) 
fatal: The remote end hung up unexpectedly 

Cann anybody give我一些有用的提示?我在這裏和網上查了答案,但沒有找到任何幫助我進一步的東西。

回答

8

gitolite-admin是隻用於gitolite服務器git的帳戶命名的公共密鑰訪問。

您正在使用默認情況下您的brian.pub,它只能讓您訪問testing.git回購。

您需要在本地工作站上定義一個$HOME/.ssh/config文件,以便記錄ssh參數以使用正確的密鑰。
請參閱「gitolite: can connect via ssh, can't clone」。

~/.ssh/gitolite.pub 
~/.ssh/gitolite 

然後我定義了配置文件:的〜/ .ssh/config中與它:

host gitolite 
    user git # replace it by the actual git user for the gitolite server 
    hostname server.com 
    identityfile ~/.ssh/gitolite 

克隆將工作:

git clone gitolite:gitolite-admin 

OP macbert確認:

我做了重新命名的關鍵git.pub,跑gitolite setup -pk git.pub並移除了.gitolite/keydirbrian關鍵。
後,我得到了git clone [email protected]:gitolite-admin

Cloning into 'gitolite-admin'... 
remote: Counting objects: 15, done. 
remote: Compressing objects: 100% (12/12), done. 
remote: Total 15 (delta 0), reused 0 (delta 0) 
Receiving objects: 100% (15/15), done. 

所以用正確的默認密鑰,一個ssh [email protected] info應該這個時候顯示gitolite-admin回購的「你好」的消息在正確的訪問。

+0

啊良好的提示 - 這工程 git克隆git @ myserver:testing.git 克隆到'測試'... 警告:您似乎克隆了一個空的存儲庫。 我怎麼能改變這個? 本指南它看起來像我的鑰匙可以被命名爲任何東西: $的mkdir斌 $ gitolite /安裝-ln $ gitolite設置-pk sena.pub 初始化空Git倉庫在/ home/gitolite /庫/ gitolite -admin.git/ 在/home/gitolite/repositories/testing.git/中初始化空的Git存儲庫警告:/home/gitolite/.ssh/authorized_keys失蹤;創建一個新的 下一步將是克隆和嘖嘖。說它可以工作 – macbert

+0

@macbert是正確的:但是除非你通過'config'文件指定你想使用正確的公鑰,否則你將無法克隆'gitolite-admin'。而鑰匙的名字很重要。 – VonC

+0

好吧,太棒了!我沒有到git.pub跑gitolite設置-pk git.pub並移除了.gitolite老布賴恩鍵/ keydir 後,我得到了 混帳混帳克隆MYSERVER @重命名鍵:gitolite管理員 克隆成「 gitolite-admin'... remote:計數對象:15,完成。 遠程:壓縮對象:100%(12/12),完成。 遠程:共15(delta 0),重用0(delta 0) 接收對象:100%(15/15),完成。 聲音很好 - 謝謝@VonC – macbert

0

通常裸git回購正在使用.git名稱。請試着做

git clone [email protected]:gitolite-admin.git

+0

相同的輸出:-7 GIT中克隆的git @ MYSERVER:gitolite-admin.git 克隆到 'gitolite管理員' ... 致命:R t任何gitolite管理員布賴恩拒絕fallthru (或者你拼錯了reponame) 致命的:遠程端意外掛斷 – macbert

+0

@macbert正常:這與回購的名稱無關,以及與gitolite如何控制訪問到那個特定的''gitolite-admin''回購。 – VonC

+5

Gitolite非常聰明,可以照顧'.git';你根本不需要它。 – poke

13

如果你只是設置了gitolite,那麼接受的答案是一個很好的答案,但如果你是現有安裝的新用戶,你會得到與問題中的錯誤相同的錯誤,已被添加爲管理員。

如果您有gitolite所在服務器的shell訪問權限,請登錄並切換到gitolite用戶 - 通常稱爲git的用戶。

一旦登錄到gitolite用戶,進入conf文件並給你自己的RW +權利在gitolite管理員回購。 Gitolite conf通常在/home/git/.gitolite/conf/gitolite.conf(假設用戶名是git)。對於命名Peaches一個gitolite用戶,授予的權限正是如此:

repo gitolite-admin 
    RW+  = OriginalAdmin Peaches 

保存文件,並運行安裝程序的命令行,仍作爲gitolite用戶:

gitolite setup 

如果你已經安裝作爲一個正確的用戶,你應該能夠克隆。

更多關於添加用戶,看the documentation

+1

請注意,如果你在Ubuntu上,並且你已經通過apt-get安裝了gitolite,gitolite setup是'gl-setup' –

+0

謝謝,這對我非常有幫助!特別是gitolite設置部分! – plasmasolutions