
所以我得到了矽藻土設定.簡單的。但我遇到了一個問題。 SSH URL 遵循git@host:repo
.我已經習慣了位元桶/吉圖布其中 url 遵循git@host:user/repo
.有沒有辦法使用後者格式矽藻土?
另一個問題。我的~/.ssh/config
文件設定了以下條目:
Host <host>
User <user>
IdentityFile <path/to/public/key>
我沒有指定git
為用戶的任何配置,但我可以git@host:repo
毫無問題地進行克隆。顯然,我的 ssh 用戶端正在使用我的公鑰來存取伺服器,這就是為什麼矽藻土讓我克隆儲存庫,但是我的 ssh 客戶端如何知道使用僅為使用者<user>
而不是使用者配置的公鑰git
?
答案1
限制使用者使用特定指令對於 gitolite 來說非常重要。
如果你讀過man sshd
並尋找authorized_keys檔案格式,您將看到許多可以新增到公鑰行的選項,這些選項以各種方式限制傳入的使用者。特別要注意該command=
選項,這意味著「無論傳入使用者要求做什麼,都強制執行此命令」。另請注意,當authorized_keys 檔案中有許多公鑰(即行)時,每行可以有一組不同的選項和
command=
值。如果沒有這個
command=
選項,ssh 守護程序只會給你一個 shell,這不是我們想要的 gitolite 金鑰(儘管我們很可能有其他用於取得 shell 的金鑰)。這是 gitolite 發揮作用的支柱;請確保你理解這一點。
這些command=
使用您的公鑰名稱作為使用者名稱。
所以你所有的 ssh 查詢都是透過以下方式完成的:
- 用戶 git
- 一個公鑰,其名稱註冊在 .txt 檔案中的 command= 指令的參數中
~git/.ssh/authorized_keys
。
至於user/repos
,與 Gitolite 最接近的是野生回購與回購模式。
repo CREATOR/a[0-9][0-9]