mercurial-server:要求密码为ssh

23t*_*tux 2 ssh mercurial debian ssh-keys mercurial-server

我正在尝试使用来自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
Run Code Online (Sandbox Code Playgroud)

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

sudo -u hg /usr/share/mercurial-server/refresh-auth
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Ry4*_*ase 5

zerkms,是正确的 - 首先直接调试ssh.尝试类似的东西:

ssh -v -v hg@MyMercurialServer
Run Code Online (Sandbox Code Playgroud)

如果您的密钥被发送和拒绝或未被发送,那将告诉您.还尝试-i path/to/private/key在客户端上添加以强制发送密钥.

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