2011-08-11 108 views
1

我的設置是Ubuntu - gitolite - msysgit。下面這個教程後:無法用新用戶克隆git存儲庫

https://sites.google.com/site/senawario/home/gitolite-tutorial

,一切工作正常。

所以我修改和COMMITED - 推配置文件:

repo gitolite-admin 
     RW+  = id_rsa 

repo testing 
     RW+  = @all 

repo project-euler 
     RW+  = tester 

Everyhting得到了更新等

我現在想用「測試」的用戶來測試這一點,但我不能。不應該git clone tester @ myServer:project-euler工作嗎?

如果我嘗試上面我得到:

$ git clone [email protected]:project-euler 
Cloning into project-euler... 
Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 

我想這從我用來管理git的同一臺機器。

如果我嘗試使用此:

git [email protected]:project-euler 

我得到:對於拒絕id_rsa

這是正常的,我認爲,因爲git的用戶不能訪問項目 - 歐拉R接入。

任何想法?

在遵循@VonC鏈接之後,我創建瞭如上所述的配置文件。我仍然遇到同樣的問題,所以我在用戶遇到麻煩時就開始使用ssh -v。輸出是:

OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007 
debug1: Reading configuration data /c/Users/Stefanos/.ssh/config 
debug1: Applying options for 192.168.1.3 
debug1: Connecting to 192.168.1.3 [192.168.1.3] port 22. 
debug1: Connection established. 
debug1: identity file /c/Users/Stefanos/.ssh/tester type 1 
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p1 Debian-1ubuntu3 
debug1: match: OpenSSH_5.8p1 Debian-1ubuntu3 pat OpenSSH* 
debug1: Enabling compatibility mode for protocol 2.0 
debug1: Local version string SSH-2.0-OpenSSH_4.6 
debug1: SSH2_MSG_KEXINIT sent 
debug1: SSH2_MSG_KEXINIT received 
debug1: kex: server->client aes128-cbc hmac-md5 none 
debug1: kex: client->server aes128-cbc hmac-md5 none 
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent 
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP 
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent 
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY 
debug1: Host '192.168.1.3' is known and matches the RSA host key. 
debug1: Found key in /c/Users/Stefanos/.ssh/known_hosts:1 
debug1: ssh_rsa_verify: signature correct 
debug1: SSH2_MSG_NEWKEYS sent 
debug1: expecting SSH2_MSG_NEWKEYS 
debug1: SSH2_MSG_NEWKEYS received 
debug1: SSH2_MSG_SERVICE_REQUEST sent 
debug1: SSH2_MSG_SERVICE_ACCEPT received 
debug1: Authentications that can continue: publickey 
debug1: Next authentication method: publickey 
debug1: Offering public key: /c/Users/Stefanos/.ssh/tester 
debug1: Authentications that can continue: publickey 
debug1: No more authentication methods to try. 
Permission denied (publickey). 

UPDATE

我設法使用Git clong git的@服務器克隆回購:回購 - 不測試儀@服務器:回購。

此外,如果我有配置文件,我不能以管理員身份登錄。它僅作爲測試者記錄。可能應該有一種方法來配置它。感謝你的幫助。

+0

你有沒有複製*測試者的公鑰*? – Simon

+0

我將它們複製到/ keydir目錄中,然後使用我的git帳戶推送更改。一切正常。我仔細檢查了刪除存儲庫並再次克隆,然後檢查新密鑰是否在那裏(它是)。 – FailedDev

回答

1

首先要做的是檢查該新用戶的公鑰是否已發佈到gitolite服務器。

  • 檢查〜混帳/的.ssh/authorizedkeys的內容,並在它
  • 尋找與測試線檢查gitolite管理員回購/ keydir的內容,並尋找一個「tester.pub」文件,在它的公共密鑰(不要忘記those public keys are named after the usertester.pub這裏)
  • 檢查儀確實對他/她的.sshid_rsaid_rsa.pub
+0

感謝您的回覆!我確實已經檢查了〜git/.ssh/authorizedkeys,並且關鍵在那裏,當然還有git語法「command etc」,但是關鍵在那裏,就像管理員密鑰一樣。另外tester.pub也在服務器的/ keydir中。 對於第三部分,我需要我的機器(Win7的)上創建另一個帳戶,然後放在C:/Users/tester/.ssh/the私鑰? – FailedDev

+0

@FailedDev:鑰匙在這裏,但你能複製那一行嗎?只是爲了檢查它是否有正確的名稱。 – VonC

+0

@FailedDev:你不需要創建任何新的賬戶,你只需要在提交你的ssh請求時選擇正確的公鑰/私鑰。看到這樣的配置文件中http://stackoverflow.com/questions/5357232/nbgit-to-remote-host-with-ssh/5357423#5357423或http://stackoverflow.com/questions/922210/unable-to-git -push-master-to-github/922461#922461 – VonC

0

你讓gitolite用戶和linux用戶混淆。他們有一些共同的特點,但在其他方面有所不同您連接到gitolite時,您總是在中使用git URL中名爲「git」的用戶。無論如何,無論您嘗試連接的用戶都必須有密鑰對(〜/ .ssh/id_rsa [.pub])。所以,假設你是「bob」。您的公鑰位於/home/bob/.ssh/id_rsa.pub。該公鑰必須添加到gitolite配置中。假設你在添加它時將其命名爲「foo.pub」。現在「foo」是一個有效的gitolite用戶,你可以在config中參考。請記住,本地用戶(bob),用於連接gitolite(git)的用戶和gitolite用戶(foo)之間沒有任何隱式或顯式連接。唯一的連接是公鑰,它將本地計算機上的「bob」標識爲gitolite的「foo」。

+0

所以我想,無論是在配置文件中,定義這意味着有可能是當前用戶每個機器在任何給定時間點只有一個用戶。這是罰款,我想:) – FailedDev

+0

@Failed:不,實際上gitolite你能說出你的PUBKEY文件,如「[email protected]」,「[email protected]」,或「[email protected]」以給單個用戶多個密鑰。 「@.pub」中的名稱並不重要。它僅供參考gitolite管理員參考。 –