几个星期以来,我无法从远程存储库中拔出或推送 . 我认为升级到IntelliJ IDEA 14时会发生这种情况,但我也可以使用IDEA 13.1.5重现问题 .
工具提示说“Fetch failed fatal:无法从远程存储库读取 . ”
和版本控制选项卡中的异常读取
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可执行文件 .
有没有人知道这里可能出现什么问题?
27 回答
不要忘记联系您的系统管理员 .
因为在我的情况下,我已经正确配置了所有东西(SSH也添加了)但我得到了同样的错误
原因是我只对该存储库具有读访问权限 . 因此,在浪费宝贵时间的同时,请先检查一下 . 谢谢 .
如果您尝试连接到github或bitbucket等 Cloud 服务,请检查Idea代理设置 . 这可以通过查找要安装的插件或通过检查
help
菜单中的软件更新来完成 . 如果互联网/代理设置不正确,请添加有效条目或将其设置为auto
我通过重新添加远程存储库解决了这个问题:VCS - > Git - > Remotes .
这有助于我解决当前的问题
如果您使用的是macOS Sierra 10.12.2或更高版本,则需要修改〜/ .ssh / config文件以自动将密钥加载到ssh-agent中并在密钥链中存储密码 .
source
什么都没有帮助我 . 然后我看到计算机上项目的名称与git存储库上的名称不同 .
所以我解决了这个问题 .
在pyCharm中,
这里将
SSH executable
从Built-in
更改为Native
然后按
apply
和close
我最近在使用github存储库时遇到了 Could not read from remote repository 错误 . 我的规格:
IntelliJ IDEA 2017.3.4(终极版)
设置 - >版本控制 - > Git - > SSH可执行文件 - >内置
Fedora Linux
当然,这些问题只有在尝试从IDE中推/拉/取等时才会发生 - 从命令行执行相同的命令就像魅力一样 .
对我有用的解决方案
我不想从
Built-In
SSH可执行文件切换到Native
,主要是因为我的本机SSH客户端在我尝试与远程存储库同步时会要求我输入密码 .我通过从SSH远程URL切换到HTTPS URL解决了这个问题 . 根据这个GitHub帮助页面 - it is recommended to use HTTPS URL instead of SSH one .
将远程URL从SSH更改为HTTPS
在IntelliJ IDEA中,转到VCS - > Git - > Remotes ...,选择包含"origin"的行并单击编辑按钮 . 如果您在GitHub上托管您的存储库,请将您的SSH URL替换为:
至:
您还可以从GitHub存储库主页获取HTTPS URL - 单击“克隆或下载”按钮,然后单击“使用HTTPS”链接以显示存储库的HTTPS URL:
更新2018-03-13
JetBrains刚刚发布了IntelliJ IDEA 2017.3.5,其中包括对GitHub的SSH访问修复 - https://blog.jetbrains.com/idea/2018/03/intellij-idea-2017-3-5-fix-for-ssh-access-to-github/
如果
SSH
不起作用,请确保在IntelliJ设置中选择"Native"后,已将指向git存储库的链接更改为HTTPS
选项 .我只是通过确保我有正确的git SSH url而没有任何尾随空格来解决这个问题:
不是解决方案/解决方法,但也许是对“可能是什么问题”这个问题的回答:
Gitlab和“在ssh库中构建的jetbrains”并不能很好地协同工作 . 该库希望使用基于SHA1的密钥交换算法,其中gitlab(默认)仅允许基于SHA2的密钥交换算法 .
据报道至少是TeamCity(https://youtrack.jetbrains.com/issue/TW-47704) .
事实上它也可能是你在IntelliJ中拉/推问题的原因,也是我在PhpStorm中的推送问题是基于ASSUMPTION jetbrains为他们所有的软件使用相同的“内置库” .
这对我来说是固定的(我使用的是SSH,而不是HTTPS,以及MacOS High Sierra上的本机git,而不是内置的)(10.13.5)/ IntelliJ IDEA 2018.4:
我尝试了上面的所有解决方案(Native,更改VCS存储库的URL,更新Git,更新IDEA,使Caches无效),但没有任何帮助 . 最后,我找到了对我有用的解决方案 .
解决方案:我关闭了Idea并用以下内容替换了文件
~\.IntelliJIdea20xx.x\config\options\git.xml
的内容:然后我开始使用IDEA,尝试检查SSH GIT存储库,它可以工作,现有项目也可以工作 . 有趣的是,当我在Idea Settings中切换到NATIVE时,存储库无法正常工作 .
IntelliJ的内置SSH客户端似乎是hash its known_hosts,但我的主机名是明文 .
当我删除文件并让IntelliJ创建一个新文件时,只有我的(散列)GitLab服务器,没有其他任何东西,它工作 .
它也不可能混合使用 - 保留一些未散列的条目以及IntelliJ的散列条目 . 因此,您必须配置其他SSH客户端to use hashed hosts .
我的电脑解决了这个问题 .
settings-->Version Control-->Git ,然后,在SSH可执行文件下拉列表中,选择 built-in 选项 .
并安装git旧版本,如 2.14.2 .
它的作品很好!
添加这个答案,因为没有一个答案对我有用 .
我有证书问题 - 所以下面的命令就行了 .
git config --global http.sslVerify false
取自https://confluence.atlassian.com/fishkb/unable-to-clone-git-repository-due-to-self-signed-certificate-376838977.html
我从一些在线课程中用叉子解决了这个问题 . 我克隆了我的fork并遇到了权限错误 . 我无法理解为什么它坚持我是我的另一家公司的用户 . 但正如之前的评论者提到的那样,我检查了
Clone git repositories using ssh
设置,而我忘了在我的新帐户中添加一个ssh密钥 . 所以我做了然后仍然无法推动因为我得到了这个错误 . 我解决它的方法是推动使用Github桌面客户端 .小贴士:
当您打开一个新的GitHub帐户时,请确保为其添加一个ssh密钥
为不同的帐户使用不同的ssh密钥
一般情况下,我在IntelliJ上遇到一些GitHub问题,每个项目至少一次或两次 . 确保您拥有GitHub桌面副本并将项目加载到其中 . 它可以并且将帮助您解决Intellij可能遇到的许多问题 - 而不仅仅是这个问题 . 它实际上是一个非常好的GUI客户端,免费!
执行@yabin建议并在Mac上使用本机客户端可能是有意义的
转到首选项>版本控制> Git . 确保SSH可执行文件设置为“Native . ”(如果已经是,请将其切换为“Built-in”,应用它,然后再次切换回“Native” . ) .
如果这不能解决您的问题,我建议下载一个Git客户端,如GitHub客户端(免费桌面应用程序),并尝试通过该应用程序同步您的项目 . 然后返回IntelliJ并检查它是否有效 .
我们最近从IntelliJ 12更新到IntelliJ 14 Ultimate,我们也遇到了这个问题 . 我们的解决方案是在设置中禁用代理 . 我们也停止记住密码一次,但可能不确定这是否有帮助 . 代理设置位于文件设置 - 外观和行为 - 系统设置 - HTTP代理下 .
如果一切都失败了,只需转到您的终端并从您的文件夹中输入:
这就是神最初想要的方式 .
我最近在WebStorm上遇到过这个问题(2018年2月),之前的解决方案都没有为我工作 . 在花了几个小时进行故障排除和研究之后, I installed the 2018 EAP version 现在可以了!
2017年12月在IntelliJ Idea> VCS / Git子系统上报告了一个新的issue,该子系统已在版本181.2445(或2018年1月31日之后的任何最新版本)中修复 .
另见帖子Update-ssh-key-to-use-new-passphrase
我通过删除PuTTY中ssh密钥的密码解决了这个问题 .
转到设置 - > Git->在SSH可执行文件下拉列表中选择本机 . (如果未选中)
从Github存储库复制HTTPS链接 .
转到VCS-> Git->遥控器..
在URL字段中编辑原点和粘贴HTTPS链接 .
按
Ctrl+Shift+k
并将项目推送到存储库 . 有用 .您需要生成一个新的SSH密钥并将其添加到您的ssh-agent . 为此你应该遵循这个link .
创建公钥并将其添加到您的github帐户后,您应该在Intellij Idea中的设置 - >版本控制 - > Git - > SSH可执行文件下使用内置(非本机)选项 .
我有同样的问题 . 使用bitbucket并且无法在Intellij上提取/更新存储库 . 尝试更改为本机并返回内置,但它无法正常工作 . 然后意识到我用密码短语生成了ssh密钥 .
我重新生成没有密码的密钥,然后将其添加到bitbucket . 有效 !
@yabin ya所说的是一个很酷的解决方案,只是提醒你:如果你仍然遇到同样的问题,请转到Settings-Version Control-GitHub并取消选中
Clone git repositories using ssh
.在我的情况下唯一有用的东西(切换SSH-executabe不起作用)是停用git和git-flow插件,重新启动intellij并再次重新激活这些插件......
settings-->Version Control-->Git
,然后,在SSH可执行文件下拉列表中,选择“原生”如果这没有帮助,请确保您的本机
ssh
和git
客户端是最新版本 .