几个星期以来,我无法从远程存储库中拉入或推送到远程存储库。我认为在升级到IntelliJ IDEA 14时会发生这种情况,但我也可以用IDEA 13.1.5重现这个问题。
工具提示显示"Fetch failed :无法从远程存储库读取“。
Version Control选项卡中的异常显示为
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
,它就可以正常工作。
根据堆栈跟踪,我的KnownHosts
似乎有问题,所以我从~/.ssh/known_hosts
中删除了我们的git服务器,希望IntelliJ能重新插入它。但是当通过UI更新时,问题仍然出现,并且没有用known_hosts
编写的新条目;考虑到文件的一些缓存,我重新启动了IntelliJ,但没有成功。
当从终端执行另一个git fetch
时,现在有人问我是否要永久添加服务器。在那之后,它再次被写入known_hosts
,但IntelliJ仍然不让我更新我的项目。
我还没有在网上找到任何关于这种行为的东西,所以我猜这不是新的IntelliJ版本的已知错误。尽管如此,我更新到了14.0.2,但是这个问题仍然存在。
IntelliJ配置为使用内置的SSH可执行文件。
有没有人知道问题出在哪里?
发布于 2015-02-03 16:21:44
IntelliJ的内置SSH客户端看起来像是hash its known_hosts
,但我使用的是明文形式的主机名。
当我删除文件并让IntelliJ创建一个新文件时,只有我的(散列的) GitLab服务器,没有其他东西,它起作用了。
它也不可能混合在一起-将一些未散列的条目与IntelliJ的散列条目放在一起。因此,您必须配置其他SSH客户端to use hashed hosts。
发布于 2015-07-06 13:42:55
SSH,然后在Settings --> Version Control --> Git
可执行文件下拉菜单中选择Native
如果这不起作用,请确保您的本机ssh
和git
客户端是足够新的版本。
发布于 2015-12-23 00:51:06
转到Preferences > Version Control > Git。确保SSH可执行文件设置为“Native”。(如果已经如此,请将其切换为“Built-in”,应用它,然后再次切换回“Native”)。
如果这还不能解决你的问题,我会建议你下载一个Git客户端,比如GitHub客户端(免费桌面应用),并尝试通过该应用同步你的项目。然后返回到IntelliJ并检查它是否工作。
https://stackoverflow.com/questions/27566999
复制相似问题