Ssh

Gitolite SSH URL 格式

  • October 17, 2012

所以我設置了gitolite。簡單的。但是我遇到了一個問題。SSH url 遵循git@host:repo. 我習慣了Bitbucket / Github,其中 url 遵循git@host:user/repo. 有沒有辦法使用gitolite獲得後一種格式?

另一個問題。我的~/.ssh/config文件設置了以下條目:

Host <host>
User <user>
IdentityFile <path/to/public/key>

我沒有任何指定git為使用者的配置,但我可以git@host:repo毫無問題地複製。顯然,我的 ssh 客戶端正在使用我的公鑰來訪問伺服器,這就是gitolite讓我複製 repo 的原因,但是我的 ssh 客戶端如何知道使用僅為<user>使用者而不是git使用者配置的公鑰?

參見Gitolite 和 ssh

對於 gitolite 來說,限制使用者使用特定命令非常重要。

如果您閱讀man sshd並查找 authorized_keys 文件格式,您會看到許多可以添加到公鑰行的選項,這些選項以各種方式限制傳入使用者。特別要注意該command=選項,它的意思是“無論傳入使用者要求做什麼,都強制執行此命令”。

另請注意,當authorized_keys 文件中有許多公鑰(即行)時,每行可以有一組不同的選項和command=值。

如果沒有這個command=選項,ssh 守護程序只會給你一個 shell,這不是我們想要的 gitolite 鍵(儘管我們很可能有其他用於獲取 shell 的鍵)。

這是使 gitolite 起作用的支柱;請確保您理解這一點

那些command=使用您的公鑰的名稱作為使用者名。

所以你所有的 ssh 查詢都是通過以下方式完成的:

  • 使用者 git
  • 一個公鑰,其名稱在~git/.ssh/authorized_keys.

至於user/repos,與 Gitolite 最接近的是野生回購和回購模式

repo    CREATOR/a[0-9][0-9]

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