Debian

Gitolite 複製未按預期工作

  • August 26, 2016

我正在執行一個 Debian 系統,並且最近使用 DEB 包安裝了 gitolite。

這是我的問題:

我試圖複製 gitolite-admin.git 儲存庫(用於為您希望 gitolite 為您管理的所有儲存庫配置 gitolite 安裝)。

我的第一次嘗試正是說明中的說明:

git clone gitolite@server:gitolite-admin

我收到以下錯誤:

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

注意:如果我用 gitolite-admin.git 替換 gitolite-admin,也會發生同樣的事情,

但是當我執行以下操作時:

git clone gitolite@server:~/repositories/gitolite-admin.git

此行成功將儲存庫複製到我的本地工作站。

現在,我將額外的文本添加到文件路徑中沒有問題,但是文件告訴我這是不正確的。

以下連結(http://sitaramc.github.com/gitolite/doc/3-faq-tips-etc.html)指出“在 git clone 中的 repo 名稱的開頭添加 repositories/”是一個常見錯誤/錯誤。它還指出“事實上 gitolite 在內部預先添加了 $REPO_BASE,所以你也不應該做同樣的事情!”

我的 .gitolite.rc 文件包含 $REPO_BASE 的以下行:

[Located in /home/gitolite/.gitolite.rc]
$REPO_BASE="repositories";

我的問題是,我的配置有什麼問題,導致 $REPO_BASE 不在我的 git 複製之前?

如果您需要任何進一步的資訊,請發表評論說明您需要什麼資訊,我將很樂意為您服務。

其他注意事項:

  • git版本:1.7.2.3
  • gitolite 版本:1.5.4-2~bp(這是來自 lenny-backports,因為我使用的是 Debian Lenny 而 gitolite 不是 Lenny 的標準配置)
  • Debian 的安裝會創建使用者“gitolite”來管理 gitolite 儲存庫。

能夠訪問gitolite@server:~/repositories/gitolite-admin.git,但不能gitolite@server:gitolite-admin表示您沒有“通過” Gitolite,而只是使用基於 SSH 的普通訪問 gitolite 使用者。

如果ssh gitolite@server echo normal accessyield normal access,那麼您使用的密鑰不僅限於通過 Gitolite。如果您正在通過 Gitolite,您會看到類似bad command: echo normal access.

如果您有一個用於 SSH 到 gitolite 使用者本身的密鑰,並且您嘗試使用相同的密鑰作為 Gitolite 使用者進行身份驗證,則可能會發生這種情況。gitolite 中將出現一個“正常訪問”密鑰,.ssh/authorized_keys沒有任何特殊前綴。配置為通過 Gitolite 的密鑰行將以command="/path/to/gl-auth-command gitolite-username",….

如果您需要對 gitolite 使用者的正常基於 SSH 的訪問和基於 Gitolite 的訪問,那麼您應該為這些目的設置單獨的密鑰,以便您可以指定要在文件IdentityFile中的選項中使用哪個密鑰.ssh/config(也許IdentitiesOnly如果您發現ssh使用“錯誤”密鑰只是因為您已經在ssh-agent中載入了它)。

例如:

使用您的“預設”密鑰之一(ssh的預設值之一(例如~/.ssh/id_rsa)或您通常在ssh-agent中載入的某些密鑰)來訪問 Gitolite(即您在活動中擁有公鑰keydir/your-gitolite-user-name.pub)。

生成~/.ssh/gitolite-user用於直接登錄 gitolite 使用者。用於ssh -i ~/.ssh/gitolite-user gitolite@server登錄。或者,將自定義條目添加到~/.ssh/config

Host gitolite-user
             User gitolite
         HostName server
     IdentityFile ~/.ssh/gitolite-user
   IdentitiesOnly yes

所以你可以ssh gitolite-user登錄。

引用自:https://serverfault.com/questions/270688