几周以来,我无法从远程存储库中拉取或推送。我认为升级到 IntelliJ IDEA 14 时会发生这种情况,但我也可以使用 IDEA 13.1.5 重现该问题。
工具提示显示“Fetch failed fatal: could not read from remote repository。”
并且版本控制选项卡中的异常显示为
14:02:37.737: cd C:\dev\project 14:02:37.737: git -c core.quotepath=false fetch origin --progress --prune java.io.IOException: Padding in RSA public key! at com.trilead.ssh2.signature.RSASHA1Verify.decodeSSHRSAPublicKey(RSASHA1Verify.java:37) at com.trilead.ssh2.KnownHosts.addHostkey(KnownHosts.java:98) at com.trilead.ssh2.KnownHosts.initialize(KnownHosts.java:414) at com.trilead.ssh2.KnownHosts.initialize(KnownHosts.java:440) at com.trilead.ssh2.KnownHosts.addHostkeys(KnownHosts.java:137) at org.jetbrains.git4idea.ssh.SSHMain.configureKnownHosts(SSHMain.java:462) at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:155) at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:137) fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
使用 IntelliJ 的内置终端,执行git -c core.quotepath=false fetch origin --progress --prune,它可以正常工作。
git -c core.quotepath=false fetch origin --progress --prune
根据堆栈跟踪,我的 似乎有问题KnownHosts,所以我从 中删除了我们的 git 服务器~/.ssh/known_hosts,希望 IntelliJ 再次插入它。但是通过UI更新的时候还是会出现这个问题,并且没有写入新的入口known_hosts;考虑到文件的一些缓存,我重新启动了 IntelliJ,但没有成功。
KnownHosts
~/.ssh/known_hosts
known_hosts
从终端执行另一个git fetch操作时,现在有人询问我是否要永久添加服务器。之后,它再次被写入known_hosts,但 IntelliJ 仍然不允许我更新我的项目。
git fetch
我在网上没有找到任何关于这种行为的信息,所以我猜这不是新 IntelliJ 版本的已知错误。尽管如此,我更新到14.0.2,但问题仍然存在。
IntelliJ 配置为使用内置的 SSH 可执行文件。
有人知道这里可能是什么问题吗?
IntelliJ 的内置 SSH 客户端似乎对它known_hosts的 .
当我删除文件并让 IntelliJ 创建一个新文件时,只有我的(散列的)GitLab 服务器,没有其他东西,它起作用了。
也不能混合使用 - 将一些未散列的条目与 IntelliJ 的散列条目保留在一起。因此,您必须将其他 SSH 客户端配置为使用散列主机。