2016-09-30 72 views
1

我试图推到git的服务器:我如何知道git服务器使用哪种授权方法?

git remote add origin ssh://[email protected]:9922/test 
git push 

这里的响应:

[email protected]'s password: 

我的密码,我的SSH密钥打字,但它失败。我甚至使用this method检查密码的正确性。

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

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

这是否意味着该库也为密码保护,不仅SSH保护?或者这只是SSH身份验证不起作用?

+0

这是失败的ssh验证步骤。很可能你没有正确注册你的密钥。 – arkascha

+1

您的钥匙未使用或未被接受。试试'ssh -vvv [email protected] -p 9922'并发布输出。您的密钥位于何处?您是如何生成密钥并将其传递给服务器的? – Jakuje

回答

1

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

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

这通常表明您已经设置了错误的标志。一般来说,你的公钥需要被添加到某个地方,最终会到达authorized_keys文件(取决于服务的实现方式)。此时,该服务会识别您的密钥并要求进行交换,然后会导致密钥提示输入密钥的密码(假设您没有添加正在运行的ssh-agent)。

究竟该如何去做,这取决于在另一端运行的服务。所以没有任何其他信息,我可以提供的唯一建议是检查该服务的文档。

+0

如果它没有提示输入密码,那么可能没有添加公钥 – Dan

0

Git本身不使用任何auth方法。

检查你的SSH服务器的配置,你可以看看论文文件中的远程服务器上:

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

或者其他人根据您的SSH服务器的配置。