2012-10-03 124 views

回答

1

不,它必須是[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查看其配置文件,並允許或拒絕請求。