我在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在获取/克隆我的存储库之前会询问我凭据吗?
答案 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可以解决问题