几周以来,我无法从远程存储库中拔出或推送。我认为升级到IntelliJ IDEA 14时会发生这种情况,但我也可以用IDEA 13.1.5重现这个问题。
工具提示说 "提取失败 致命:无法从远程存储库读取。"
,“版本控制”选项卡中的异常读取
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可执行文件。
有没有人知道这里可能出现什么问题?
答案 0 :(得分:707)
答案 1 :(得分:68)
转到首选项>版本控制> Git的。确保SSH可执行文件设置为“Native。”(如果已经是,请将其切换为“Built-in”,应用它,然后再次切换回“Native”。)。
如果这不能解决您的问题,我建议您下载一个Git客户端,例如GitHub客户端(免费桌面应用程序),并尝试通过该应用程序同步您的项目。然后返回IntelliJ并检查它是否有效。
答案 2 :(得分:49)
我最近在使用github存储库时遇到了 Could not read from remote repository
错误。我的规格:
当然,这些问题只发生在尝试从IDE中推/拉/取等时 - 从命令行执行相同的命令就像魅力一样。
我不想从Built-In
SSH可执行文件切换到Native
,主要是因为我尝试与远程存储库同步时,我的本机SSH客户端会要求我输入密码。
我通过从SSH远程URL切换到HTTPS URL解决了这个问题。根据这个GitHub帮助页面 - it is recommended to use HTTPS URL instead of SSH one。
SSH
更改为HTTPS
在IntelliJ IDEA中,转到 VCS - > Git - >遥控器...... ,选择包含"来源"然后单击编辑按钮。如果您在GitHub上托管您的存储库,请将您的SSH URL替换为:
git@github.com:USERNAME/REPOSITORY.git
为:
https://github.com/USERNAME/REPOSITORY.git
您还可以从GitHub存储库主页获取HTTPS URL - 单击"克隆或下载"按钮并单击"使用HTTPS"链接以显示存储库的HTTPS URL:
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/
答案 3 :(得分:21)
IntelliJ的内置SSH客户端似乎是hash its known_hosts
,但我的主机名是明文。
当我删除文件并让IntelliJ创建一个新文件时,只使用我的(散列)GitLab服务器,而不是其它任何东西,它可以工作。
它也不可能混合使用 - 保留一些未散列的条目以及IntelliJ的散列条目。因此,您必须配置其他SSH客户端to use hashed hosts。
答案 4 :(得分:13)
在pyCharm中,
file|
v-->settings|
v-->Version Control|
v-->Git
此处SSH executable
从Built-in
更改为Native
然后按apply
和close
答案 5 :(得分:11)
Ctrl+Shift+k
并将项目推送到存储库。
它有效。答案 6 :(得分:9)
我通过重新添加远程存储库解决了这个问题:VCS - > Git - >遥控器。
答案 7 :(得分:5)
Clone git repositories using ssh
。
答案 8 :(得分:5)
您需要生成新的SSH密钥并将其添加到您的ssh-agent。为此,您应该遵循此link。
创建公钥并将其添加到您的github帐户后,您应该在Setting->下使用Built-in(非Native)选项。版本控制 - > Git - >您的Intellij Idea中的SSH可执行文件。
答案 9 :(得分:3)
我们最近从IntelliJ 12更新到IntelliJ 14 Ultimate,我们也遇到了这个问题。我们的解决方案是在设置中禁用代理。我们也停止记住密码一次,但可能不确定这是否有帮助。 代理设置在File-Settings-Apearance&行为 - 系统设置 - HTTP代理。
答案 10 :(得分:2)
答案 11 :(得分:2)
这有助于我解决当前问题
如果您正在使用macOS Sierra 10.12.2或更高版本,则需要修改〜/ .ssh / config文件以自动将密钥加载到ssh-agent中并在密钥链中存储密码。
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
答案 12 :(得分:2)
我通过删除PuTTY中ssh密钥的密码解决了这个问题。
答案 13 :(得分:1)
我已通过将SSH私钥添加到命令中的ssh-agent中来解决此问题:
$ ssh-add -K ~/.ssh/id_rsa
并设置Settings --> Version Control --> Git
,然后在SSH可执行文件下拉列表中,选择Native
答案 14 :(得分:1)
不是解决方案/解决方法,但也许是对“可能是什么问题”这个问题的回答:
Gitlab和“在ssh库中构建的'jetbrains'不能很好地协同工作。该库希望使用基于SHA1的密钥交换算法,其中gitlab(默认)仅允许基于SHA2的密钥交换算法。
至少报告了TeamCity(https://youtrack.jetbrains.com/issue/TW-47704)。
事实上它也可能是你在IntelliJ中拉/推问题的原因,而且我在PhpStorm中的推送问题是基于ASSUMPTION jetbrains为他们所有的软件使用相同的“内置库”。
答案 15 :(得分:0)
我在某些在线课程中遇到了这个问题。我克隆了我的fork并遇到了权限错误。我无法理解为什么它坚持我是我的另一家公司的用户。但正如之前的评论者提到的那样,我检查了Clone git repositories using ssh
设置,而我忘了在我的新帐户中添加一个ssh密钥。所以我做了然后仍然无法推动因为我得到了这个错误。我解决它的方法是推动使用Github Desktop客户端。
外卖:
答案 16 :(得分:0)
如果其他所有方法都失败了,只需转到您的终端并从您的文件夹中输入:
git push origin master
这就是神最初想要的方式。
答案 17 :(得分:0)
答案 18 :(得分:0)
添加远程URL时,请从此更改
https://username@bitbucket.org/usernameowner/project-name.git
对此
https://bitbucket.org/usernameowner/project-name.git
答案 19 :(得分:0)
我尝试了manager
选项,但对我不起作用,最后以旧方式重新生成ssh密钥,并在title
命令中添加了Native
选项。 IDEA 也可以使用-m
选项。
ssh-keygen
答案 20 :(得分:0)
我有同样的问题。正在使用bitbucket,在Intellij上拉/更新存储库时遇到问题。尝试将其更改为本机,然后又改回内置,但无法正常工作。然后意识到我已经用密码生成了ssh密钥。
我重新生成了没有密码短语的密钥,然后将其添加到了位桶中。 它起作用了!
答案 21 :(得分:0)
我尝试了上述所有解决方案(本机,更改VCS存储库的url,更新Git,更新IDEA,使缓存无效),但没有任何帮助。最终,我找到了适合我的解决方案。
解决方案:我关闭了Idea,并用以下文件替换了文件~\.IntelliJIdea20xx.x\config\options\git.xml
的内容:
<application>
<component name="Git.Application.Settings">
<option name="SSH_EXECUTABLE" value="IDEA_SSH" />
</component>
</application>
然后,我启动了IDEA,尝试签出SSH GIT存储库,它可以正常运行,并且现有项目也可以正常运行。有趣的事实是,当我在“想法设置”中切换到“本地”时,存储库无法正常工作。
答案 22 :(得分:0)
没有任何帮助。然后我发现计算机上的项目名称与git存储库上的名称不同。
所以我解决了这个问题。
答案 23 :(得分:0)
我只是通过确保我拥有正确的git SSH URL而没有任何尾随空格来解决此问题:
git@github.com:USERNAME/REPOSITORY.git
答案 24 :(得分:0)
答案 25 :(得分:0)
如果您尝试连接到github或bitbucket等云服务,请检查Idea代理设置。这可以通过查找要安装的插件或通过检查help
菜单中的软件更新来完成。
如果互联网/代理设置不正确,请添加有效条目或将其设置为auto
答案 26 :(得分:0)
我的电脑解决了这个问题
设置 - &gt;版本控制 - &gt; Git ,然后在SSH可执行文件下拉列表中,选择内置选项。
并安装git旧版本,例如 2.14.2 它的作品很好!
答案 27 :(得分:0)
在我的情况下唯一有用的东西(切换SSH-executabe不起作用)是停用git和git-flow插件,重新启动intellij并重新激活这些插件......
答案 28 :(得分:0)
请勿忘记与系统管理员联系。
因为在我的情况下我已经正确配置了所有东西(SSH也添加了)但我得到了同样的错误
存储库访问被拒绝。致命:无法从远程读取 库中。
原因是我只对该存储库具有读访问权限。因此,在浪费宝贵时间的同时,请先检查一下。 谢谢。
答案 29 :(得分:0)
我最近遇到了WebStorm的这个问题( February / 2018 ),之前的解决方案都没有为我工作。在花了几个小时进行故障排除和研究后,我安装了2018 EAP版,现在可以了!
在IntelliJ Idea&gt;上 2017年12月上报告的新issue VCS / Git子系统已在build 181.2445(或2018年1月31日之后的任何最新版本)中修复。
答案 30 :(得分:-1)
如果HTTPS
不起作用,请确保在IntelliJ设置中选择“Native”后,已将指向git存储库的链接更改为SSH
选项。