【问题标题】:Public key accepted with SSH, fails with gitSSH 接受的公钥,git 失败
【发布时间】:2011-11-27 20:59:15
【问题描述】:

我正在使用 gitosis 进行存储库管理。我还有另外两个可以完美运行的键。我最近添加了第三个键。

当我通过 SSH 连接到机器时,所有密钥都有效(我收到提到的错误 here 正常,并且服务器的 auth.log 显示“找到匹配的 RSA 密钥...”)。但是,当我运行命令时:

git clone -b <branch> ssh://gitosis@<server>/<project>

使用新的第三个密钥,服务器的 auth.log 显示“gitosis 的公钥失败...”。相同的“git clone”命令适用于其他键。

.ssh 文件的权限设置正确,因为我可以通过 SSH 连接到机器。

两台机器都是 Ubuntu。

什么会导致“git clone”被拒绝,而 SSH 被接受?

【问题讨论】:

  • 我删除了 gitosis 并安装了 gitolite,但是同样的问题仍然存在。事实上,完全相同的东西有效,完全相同的东西不起作用。我现在只是使用不同的 git 管理工具和不同的客户端密钥(我重新创建了密钥以确保客户端和服务器都具有相同的密钥)。所以问题似乎出在 SSH 服务器或 git 客户端上。我倾向于 git 客户端的问题,因为其他机器可以成功执行克隆。不同版本会有问题吗?客户端是 git v1.7.0.4,服务器是 git v1.7.4.1。
  • 与 bitbucket 相同的问题 - git 身份验证停止工作。过去工作正常。

标签: git ssh public-key


【解决方案1】:

这应该意味着您有一个 ssh 配置文件 (~/.ssh/config),其中包含:

  • 一段Host &lt;server&gt;
  • 不同于gitosis 用户应该拥有的IdentityFile(即公钥完整路径)

【讨论】:

  • 两台机器上都没有~/.ssh/config files/etc/ssh/ssh_config 的唯一区别在于 GSSAPIAuthentication 行。 gitosis 机器有“否”,客户端机器有“是”。将 gitosis 机器更改为“是”并不能解决问题。
  • @jma:您确定gitosis/.ssh/id_rsa.pub 已作为gitolite 强制命令行发布在server/.ssh/authorized_keys 文件中吗?
  • 是的。我可以在 gitosis 帐户的 ~/.ssh/authorized_keys 文件中看到第三个(非工作)密钥。另外,我可以通过 SSH 连接到机器并识别密钥。
  • @jma 仅连接是不够的:它需要注册为强制命令。但是,如果您的第三个键出现在与其他两个相似的行中,则不是问题。
  • @jma 所以......使用 gitolite 怎么样? ;) stackoverflow.com/questions/7591958/…
猜你喜欢
  • 2018-08-29
  • 2014-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-18
  • 1970-01-01
  • 1970-01-01
  • 2017-09-29
相关资源
最近更新 更多