Ssh
Gitolite SSH URL 格式
所以我設置了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 來說,限制使用者使用特定命令非常重要。
如果您閱讀
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]