【问题标题】:How do I know which authorisation method git server uses?我如何知道 git server 使用哪种授权方法?
【发布时间】:2017-02-08 17:52:54
【问题描述】:

我正在尝试推送到 git 服务器:

git remote add origin ssh://git@git.example.com:9922/test
git push 

回复如下:

git@git.example.com's password:

我正在输入我的 ssh 密钥的密码,但它失败了。我什至使用this method 检查了密码的正确性。

3 次尝试失败后,服务器响应:

Permission denied (publickey,password).
fatal: Could not read from remote repository.

这是否意味着存储库也受密码保护,而不仅仅是受 ssh 保护?或者这只是 ssh 身份验证不起作用?

【问题讨论】:

  • 这是失败的 ssh 身份验证步骤。很可能您没有正确注册您的密钥。
  • 您的密钥要么未被使用,要么未被接受。尝试ssh -vvv git@git.example.com -p 9922 并发布输出。您的密钥在哪里,您是如何生成它并将其传递给服务器的?

标签: git ssh


【解决方案1】:

我正在输入我的 ssh 密钥的密码,但它失败了。我什至用这种方法检查过密码的正确性。

这是问题的一部分。它不会提示您输入密钥的密码,而是提示您输入 git@git.example.com 的密码。换句话说,它在 git.example.com 上提示 git 用户的密码,而不是您的密钥密码。

这通常表明您设置了错误。通常,您的公钥需要添加到某个地方,最终将进入authorized_keys 文件(取决于服务的实现方式)。届时,该服务将识别您的密钥并要求进行交换,这将导致它提示输入密钥的密码(假设您尚未将其添加为正在运行的 ssh-agent)。

具体如何执行此操作实际上取决于另一端运行的服务。因此,在没有任何其他信息的情况下,我能提供的唯一建议是查看该服务的文档。

【讨论】:

  • 如果没有提示输入密码,那么可能是没有添加公钥
【解决方案2】:

Git 本身不使用任何身份验证方法。

检查你的ssh服务器配置,你可以看看远程服务器上的这些文件:

  • /home/git/.ssh/authorized_keys
  • /etc/ssh/sshd_config

可能还有其他取决于您的 ssh 服务器配置。

【讨论】:

    猜你喜欢
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 2012-07-17
    • 2019-05-14
    • 2022-07-19
    相关资源
    最近更新 更多