【问题标题】:mercurial-server: Password is asked for sshmercurial-server:ssh 需要密码
【发布时间】:2011-06-17 18:30:23
【问题描述】:

我正在尝试使用来自 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 的日志文件。 有谁知道,怎么解决?

谢谢。

【问题讨论】:

  • 使用ssh hg@MyMercurialServer 开始您的考试。当你得到它的工作 - 回到 mercurial。

标签: mercurial ssh debian ssh-keys mercurial-server


【解决方案1】:

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

ssh -v -v hg@MyMercurialServer

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

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

【讨论】:

  • 感谢 zerkms 和 Ry4an,我解决了。问题是,我在 sshd_config 中定义了一个 AllowUsers 标志,其中 hg 用户不是 listet。顺便说一句,在 debian ssh 上登录到 /var/log/auth.log
猜你喜欢
  • 2011-12-13
  • 2021-09-23
  • 2016-03-25
  • 2012-10-03
  • 1970-01-01
  • 2017-11-28
  • 1970-01-01
  • 2015-08-27
  • 2013-02-08
相关资源
最近更新 更多