Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Intellij没有询问Git凭据,但在身份验证过程中失败_Java_Git_Intellij Idea_Ssh - Fatal编程技术网

Java Intellij没有询问Git凭据,但在身份验证过程中失败

Java Intellij没有询问Git凭据,但在身份验证过程中失败,java,git,intellij-idea,ssh,Java,Git,Intellij Idea,Ssh,我在Windows10环境中使用Git和Intellij。由于某种原因,我的git凭证被弄乱了。当我尝试获取/克隆时,Intellij没有要求我输入凭据。它似乎在尝试使用已存储的git凭据。尝试获取时,我遇到以下错误: 7:58:31.180:git-c core.quotepath=false获取原点--进度 --修剪 java.io.IOException:身份验证失败:在 org.jetbrains.git4idea.ssh.SSHMain.authenticate(SSHMain.jav

我在Windows10环境中使用Git和Intellij。由于某种原因,我的git凭证被弄乱了。当我尝试获取/克隆时,Intellij没有要求我输入凭据。它似乎在尝试使用已存储的git凭据。尝试获取时,我遇到以下错误:

7:58:31.180:git-c core.quotepath=false获取原点--进度 --修剪

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结构, “----开始…”在 com.trilead.ssh2.crypto.pemdecover.parsePEM(pemdecover.java:138)位于 com.trilead.ssh2.crypto.pemdecover.decode(pemdecover.java:313)位于 com.trilead.ssh2.auth.AuthenticationManager.authenticatePublicKey(AuthenticationManager.java:171) ... 5更致命:无法从远程存储库读取。请做 确保您具有正确的访问权限并且存储库存在

所以,我在谷歌上搜索并找到了各种各样的方法,并尝试了所有这些方法,结果发现没有一种对我有效

我尝试了以下方法:

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

(二)

(三)


等等。。是否有其他解决问题的方法,以便Intellij在我获取/克隆我的回购之前询问我凭据?

TL;DR更新到最新版本(2018.3或更高版本),默认情况下使用本机SSH,如果一切都在终端中工作,那么它应该在IDE中工作

更详细的回答如下:

Git凭据帮助程序用于HTTP基本连接。从错误判断,您使用的是SSH,因此不涉及凭证帮助器,因此对其进行任何操作都不会有帮助。 错误消息也属于IntelliJ内置SSH客户端,原因可能是使用了错误的SSH密钥,或者密钥格式不受支持—已知内置客户端不支持新的OpenSSH密钥格式—请参阅

解决方案是将IDE配置为使用本机SSH,这实际上是告诉git使用系统默认SSH客户端,或者在使用GitForWindows的情况下使用与GitForWindows捆绑的客户端。本机SSH应该支持正在使用的密钥格式


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

配置本机ssh时,我遇到了一些其他问题,但从2.20.1将git版本降级到2.17.0解决了从windows凭据管理器中删除后的问题,你试过重新启动intellij吗?@vmrvictor,是的,我试过了。我甚至重新启动了我的机器,但没有用:(您使用过更新的git版本吗?@Pervez,我使用的是git版本2.20.1.windows.1。三天前,问题发生在我更改windows密码之后。配置本机SSH时,我遇到了一些其他问题,但将git版本降级到2.17.0解决了问题。