我怎么知道git服务器使用哪种授权方法?

时间:2016-09-30 08:09:29

标签: git ssh

我试图推送到git服务器:

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

以下是回复:

git@git.example.com's password:

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

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

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

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

2 个答案:

答案 0 :(得分:1)

  

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

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

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

如何才能真正取决于另一端运行的服务。因此,如果没有任何其他信息,我可以提供的唯一建议是检查该服务的文档。

答案 1 :(得分:0)

Git本身并没有使用任何身份验证方法。

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

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

也许其他人可能取决于您的ssh服务器配置。