Intellij并未询问Git凭证,而是在身份验证期间失败

时间:2019-02-15 12:45:14

标签: java git intellij-idea ssh

我在Windows 10环境中将Git与Intellij一起使用。由于某种原因,我的git凭证被弄乱了。当我尝试获取/克隆时,Intellij不会要求我输入凭据。看起来好像是试图使用已经存储的git凭证。尝试提取时出现以下错误:

  

7:58:31.180:git -c core.quotepath = false提取origin --progress   -修剪

     
    

java.io.IOException:身份验证失败:在     org.jetbrains.git4idea.ssh.SSHMain.authenticate(SSHMain.java:298)在     org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:172)位于     org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:137)由以下原因引起:     java.io.IOException:公钥认证失败。在     com.trilead.ssh2.auth.AuthenticationManager.authenticatePublicKey(AuthenticationManager.java:262)         在     com.trilead.ssh2.Connection.authenticateWithPublicKey(Connection.java:443)         在org.jetbrains.git4idea.ssh.SSHMain.tryPublicKey(SSHMain.java:352)         在org.jetbrains.git4idea.ssh.SSHMain.authenticate(SSHMain.java:231)         ... 2更多原因:java.io.IOException:无效的PEM结构,     “ ----- BEGIN ...”在以下位置丢失     com.trilead.ssh2.crypto.PEMDecoder.parsePEM(PEMDecoder.java:138)位于     com.trilead.ssh2.crypto.PEMDecoder.decode(PEMDecoder.java:313)位于     com.trilead.ssh2.auth.AuthenticationManager.authenticatePublicKey(AuthenticationManager.java:171)         ... 5更致命:无法从远程存储库读取。请做出来     确保您具有正确的访问权限,并且存储库存在。

  

因此,我用Google搜索并找到了各种方法,并尝试了所有方法,但都发现没有一种方法对我有用。

我尝试了以下几种方式:

1)删除Windows凭据管理器中存储的凭据

2)Change remote repository credentials (authentication) on Intellij IDEA 14

3)Git credential helper - update password

以此类推。.还有其他想法可以解决此问题,以便Intellij在获取/克隆我的存储库之前会询问我凭据吗?

2 个答案:

答案 0 :(得分:1)

TL; DR更新到最新版本(2018.3或更高版本),默认情况下使用本机SSH,并且如果一切都在终端中正常运行,则应该在IDE中运行。

下面是更详细的答案:

Git凭据助手可用于基于HTTP的连接。根据错误判断,您正在使用SSH,因此不涉及凭据帮助程序,因此围绕它的任何操作都将无济于事。 该错误消息也属于IntelliJ内置SSH客户端,原因是使用的ssh-key错误或密钥格式不受支持-并且已知内置客户端不支持新的OpenSSH密钥格式-请参见https://youtrack.jetbrains.com/issue/IDEA-151116 < / p>

此问题的解决方案是将IDE配置为使用本机SSH,实际上,这是告诉git使用系统默认的SSH客户端,或者是与GitForWindows捆绑在一起的客户端(如果使用的话)。本机SSH应该支持正在使用的密钥格式。

在2018.3之前,IntelliJ无法处理用于密码短语或主机验证的交互式提示,因此必须使用ssh-agent。从2018.3开始,IntelliJ可以处理这些提示,并且本机SSH是默认设置。因此,更新应该解决该问题,应该是密钥格式,还是内置SSH客户端不支持的某些特定.ssh配置。

答案 1 :(得分:0)

配置本机SSH时遇到了其他一些问题,但是将git版本从2.20.1降级到2.17.0可以解决问题