2011-01-29 75 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