我正在尝试使用来自LShift的mercurial-server在我的服务器(Debian Lenny)上管理我的mercurial repos。我正在使用本教程:http://kurtgrandis.com/blog/2010/03/20/gitosis-for-mercurial/
但是当我尝试克隆hgadmin repo时,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的任何日志文件。 有人知道,如何解决这个问题?
感谢。
答案 0 :(得分:5)
zerkms,是正确的 - 首先直接调试ssh。尝试类似:
ssh -v -v hg@MyMercurialServer
如果您的密钥被发送和拒绝或未被发送,那将告诉您。还可以尝试在客户端添加-i path/to/private/key
以强制发送密钥。
ssh密钥设置中的常见配置问题是ssh服务器端的authorized_keys文件的权限。它必须是0600
,其所在的目录必须是0700
。您可以在服务器端的/var/log/messages
中调试这些内容,如果由于权限而不愿信任authorized_keys文件,sshd将打印一条消息。