2

我正在尝试使用 LShift 的 mercurial-server 在我的服务器(Debian Lenny)上管理我的 mercurial 存储库。我正在使用本教程: http: //kurtgrandis.com/blog/2010/03/20/gitosis-for-mercurial/

但是当我尝试克隆 hgadmin 存储库时,ssh 要求我输入密码。

hg clone ssh://hg@MyMercurialServer/hgadmin

但是我从来没有为 hg 用户设置过密码。它是使用 apt-get 安装创建的。通常,应该使用我的公共 ssh 密钥(从 mercurial-server 复制到 keys/root 目录)来完成身份验证。但似乎,mercurial-server 不使用我的公钥。我还用

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

将公钥复制到 mercurial-server keys/root 目录后。此外,我找不到任何 mercurial-server 的日志文件。有谁知道,如何解决?

谢谢。

4

1 回答 1

5

zerkms,是正确的——首先直接调试 ssh。尝试类似:

ssh -v -v hg@MyMercurialServer

这会让您知道您的密钥是否被发送和拒绝或未发送。还可以尝试-i path/to/private/key在客户端上添加以强制发送密钥。

ssh 密钥设置中的常见配置问题是 ssh 服务器端的 authorized_keys 文件的权限。它必须是0600,它所在的目录必须是0700. 您可以在服务器端调试这些东西/var/log/messages,如果 sshd 由于权限而不愿意信任authorized_keys 文件,它将打印一条消息。

于 2011-01-29T20:07:02.147 回答