2011-01-29 73 views
2

我試圖用LShift與我的服務器(Debian Lenny)mercurial服務器管理我的mercurial回購。我正在使用本教程:http://kurtgrandis.com/blog/2010/03/20/gitosis-for-mercurial/mercurial-server:密碼被要求爲ssh

但是,當我嘗試克隆hgadmin回購時,ssh要我輸入密碼。

hg clone ssh://[email protected]/hgadmin 

但我從來沒有爲hg用戶設置過密碼。它是使用apt-get安裝創建的。 通常,應使用我的公共ssh密鑰(已從mercurial-server複製到密鑰/根目錄)完成身份驗證。但看起來,mercurial-server並不使用我的公鑰。 我也刷新了特權與

sudo -u hg /usr/share/mercurial-server/refresh-auth 

複製公鑰善變的服務器密鑰/根目錄後。此外,我找不到任何mercurial-server的日誌文件。 有誰知道,該如何解決?

謝謝。

+2

用`ssh hg @ MyMercurialServer`開始你的考試。當你得到它的工作 - 回到mercurial。 – zerkms 2011-01-29 15:31:03

回答

5

zerkms,是正確的 - 首先直接調試ssh。嘗試這樣的:

ssh -v -v [email protected] 

這會讓你知道你的密鑰是否被髮送和拒絕或沒有發送。也可以嘗試在客戶端添加-i path/to/private/key以強制發送密鑰。

ssh密鑰設置中的常見配置問題是對ssh服務器端authorized_keys文件的權限。它需要是0600,其中的目錄需要是0700。您可以在服務器端的/var/log/messages中調試那些東西,如果sshd由於權限而不願信任authorized_keys文件,它將打印一條消息。

+0

thx zerkms和Ry4an,我解決了它。問題是,我在sshd_config中定義了一個AllowUsers標誌,其中hg用戶不在監聽。順便說一句,在debian ssh登錄到/var/log/auth.log – 23tux 2011-01-31 16:41:25