2012-05-24 192 views
4

我瘋了克隆gitolite管理存儲庫的問題。 我跟着這個http://sitaramc.github.com/gitolite/install.html#migr它完美。gitolite管理克隆問題

我跑ssh-keygen -t rsascp ~/.ssh/id_rsa.pub [email protected]:/tmp/morten.pub

的authorized_keys在服務器上看起來是這樣的:

# gitolite start 
command="/home/morten/gitolite/src/gitolite-shell morten",no-port-forwarding,no-X11-forwarding,no-agent-forward$ 
# gitolite end 

這AFAIK是好的。

當我跑我的客戶端上git clone [email protected]:gitolite-admin,我得到

fatal: 'gitolite-admin' does not appear to be a git repository 
fatal: The remote end hung up unexpectedly 

我不知道我錯過了!

回答

5

使用morten帳戶是非常好的。

但是,您的安裝很奇怪,考慮到當前的~morten/.ssh/authorized_keys內容:

代替/home/morten/gitolite/src/gitolite-shell morten |,你應該有/home/morten/gitolite/bin/gitolite-shell morten

這意味着:gitolite-shell應該在你的$PATH,它應該是在bin目錄,執行之後創建的:

"${github}/install" -to "${gtl}/bin" 

(見「」實際安裝「 部分的選項3 10「)

有:

  • github,你必須克隆https://github.com/sitaramc/gitolite
  • gtl要安裝gitolite(在你的情況,比如路徑的路徑,/home/morten/gitolite

然後,更容易保存你的authorized_keys.gitolite.rc文件,並重新執行初始化過程:

gitolite setup -pk "${HOME}/.ssh/gitoliteadm.pub" 

(前提是你創建你的公鑰和私鑰,並將其命名爲 'gitoliteadm',用一個簡單的:

ssh-keygen -t rsa -f "${H}/.ssh/morten" -C "Gitolite Admin access (not interactive)" -q -P "" 

注意,我把 'SSH' 帳戶名(morten )不同於gitolite服務器賬戶(gitoliteadm)。

你仍然會與git clone [email protected]:gitolite-admin克隆(因爲所有的SSH文件都在~morten/.ssh),但你會用gitoliteadm的公/私鑰做到這一點,促使gitolite與gitolite「帳戶」命名即可訪問其回購「gitoliteadm」 。這樣,如果您更改gitolite服務器的物理用戶帳戶,「邏輯」帳戶「gitoliteadm」(指的是角色,而不是人員或資源)。

+0

非常感謝!按照這些步驟,它似乎現在工作:) 要從頭開始,我做了一個完整的ubuntu服務器重新安裝(它幾乎是全新安裝),並將用戶名更改爲「ubuntu」,以避免任何混淆 - 現在當我這樣做: git克隆ubuntu @ ubuntu服務器:gitolite管理 它使我的客戶端克隆 - 這樣就告訴我它正在工作,因爲它應該! 再次感謝! –

+0

@Morten:不客氣。很高興你做到了。 – VonC

+0

我有一個問題我希望你能幫助: 當我做:混帳推-u起源主 我得到:FATAL:W任何的Ubuntu/CRM gitoliteadm通過fallthru –