我安裝了gitolite。我能夠很好地管理它。我添加了一些新的回購券和一些酒吧鑰匙。安裝爲'[email protected]
',併爲用戶添加回購作爲repo.git
。修改gitolite存儲庫url
是否必須是[email protected]:repo.git
才能訪問,或者有沒有辦法在url中指明用戶?
例如,可能是類似[email protected]:repo.git
或git.domain.com/user/repo.git
?
我安裝了gitolite。我能夠很好地管理它。我添加了一些新的回購券和一些酒吧鑰匙。安裝爲'[email protected]
',併爲用戶添加回購作爲repo.git
。修改gitolite存儲庫url
是否必須是[email protected]:repo.git
才能訪問,或者有沒有辦法在url中指明用戶?
例如,可能是類似[email protected]:repo.git
或git.domain.com/user/repo.git
?
不,它必須是[email protected]
,因爲用戶總是相同的:您用來在您的服務器上安裝和管理gitolite的git帳戶。
實際用戶是從您使用ssh調用時使用的公鑰中推導出來的。
如果您使用代表在用戶登錄後命名的公鑰的user.pub文件註冊該密鑰,則gitolite將能夠識別您。請參閱「how gitolite uses ssh」。
如果您在
authorized_keys
文件看,你會看到這樣的條目(我砍掉過程的兩端;他們很長的線):
command="[path]/gitolite-shell sitaram",[more options] ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA18S2t...
command="[path]/gitolite-shell usertwo",[more options] ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArXtCT...
第一它會找出該文件中的哪個公鑰與傳入登錄匹配。
一旦找到匹配,它就會運行該行給出的命令;例如,如果我登錄,它將運行[path]/gitolite-shell sitaram
。
所以首先要注意的是,這樣的用戶不會得到「shell訪問」,這是很好的!當
gitolite-shell
得到控制,它着眼於第一個參數(「sitaram
」,‘usertwo
’等)來確定你是誰。然後,它會查看SSH_ORIGINAL_COMMAND
變量以找出要訪問的存儲庫,以及您是正在讀取還是正在寫入。現在,它有一個用戶,存儲庫和訪問請求(讀/寫),gitolite查看其配置文件,並允許或拒絕請求。