2011-06-15 27 views
3

我有一個問題,與其他用戶能夠連接到我的服務器gitolite。gitolite用戶無法連接

一切工作在我結束罰款(我是管理員,也做了gl-easy-install) - 但是,我請求來自其他用戶的pub,並把它添加到keydir,與添加的權限gitolite-admin沿在conf文件中回購。我git addcommit這些文件,和push他們備份到gitolite服務器。一切看起來不錯。

我告訴用戶嘗試git clone [email protected]:gitolite-admin.git,他們得到許可的錯誤。該命令掛鉤在git用戶的authorized_keys文件中,所以我有點困惑,因爲我失蹤了。

我在其他一些答案中看到,要使用的正確地址是[email protected]:gitolite-admin.git,但基於authorized_keys文件,這看起來根本不正確。

幫助深表感謝,感謝您的專業知識!

回答

6

你的機器上做了ssh -vvvv [email protected]。你會看到提供什麼密鑰。現在在這個用戶的機器上做同樣的事情。另外請將你的配置文件發佈到gitolite上,如果你有它們,那麼〜/ .ssh/config文件,如果你們有它們的話。用一般的東西替換你的敏感回購。

(upvoted你的問題)

+0

快速的問題,而據我瞭解, - 將我添加用戶能夠通過'ssh'連接到服務器?我的印象是,他們只能通過git clone' – Nic 2011-06-15 20:12:50

+0

來連接,但通過服務器知道的gitolite賬戶。 'ssh git @ gitserver.com'不應該給你一個命令提示符,而是列出這些存儲庫並立即註銷。 – 2011-06-15 20:34:27

+0

ssh -v告訴我們它正在尋找'id_rsa'而不是'username',這讓我們大吃一驚。有沒有辦法讓它找出id_rsa以外的東西? – Nic 2011-06-15 21:44:07

3

通常這些問題都是與在他們的.ssh目錄連接用戶文件的權限做。確保他們的id文件只能被自己讀取(400)。另外,確保.ssh目錄和所有父目錄不能被root和用戶以外的任何人寫入。例如,他們的目錄應該具有的權限如下所示:

$ ls -ld . home home/prentice home/prentice/.ssh/ 
drwxr-xr-x 22 root  root  4096 2011-04-28 09:47 . 
drwxr-xr-x 4 root  root  4096 2010-11-17 22:19 home 
drwxr-xr-x 75 prentice prentice 4096 2011-06-15 13:56 home/prentice 
drwx------ 2 prentice prentice 4096 2011-04-20 08:07 home/prentice/.ssh/ 

否則,ssh將拒絕他們的身份,因爲它可以讀取或由他人修改。您的authorized_keys文件也一樣。如果可以被其他人修改(直接或修改上面的目錄),ssh將不會使用它。

+1

感謝您對此的見解,我確實最終檢查了它,但燙髮看起來不錯。它實際上是在尋找'id_rsa' – Nic 2011-06-15 21:18:11

0

確保誰是試圖訪問庫的用戶正試圖從相同的用戶帳戶,並與其相應的RSA密鑰..訪問,

例如:如果你已經添加了root用戶的公鑰到gitolite管理員和用戶正試圖從他的sudo的用戶帳戶訪問它woudnt工作..,