几个星期以来,我不能从远程存储库中拉或推到远程存储库中。我以为这是在升级到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似乎有问题,所以我从~/删除了我们的git服务器。ssh/known_hosts,希望IntelliJ再次插入它。但是当通过UI更新时,问题仍然出现,并且在known_hosts中没有写新的条目;考虑对文件进行缓存,我重新启动了IntelliJ,但没有成功。

当从终端进行另一次git取回时,现在我被问到是否要永久添加服务器。之后,它再次被写入known_hosts,但IntelliJ仍然不让我更新我的项目。

我还没有在网上找到任何关于这种行为的信息,所以我猜这不是新的IntelliJ版本的已知错误。尽管如此,我更新到14.0.2,但问题仍然存在。

IntelliJ被配置为使用内置的SSH可执行文件。

有人知道问题出在哪里吗?


IntelliJ的内置SSH客户端似乎散列了它的known_hosts,但我使用的那个客户端主机名是明文形式的。

当我删除文件并让IntelliJ创建一个新的文件时,它只使用我的(散列的)GitLab服务器,没有其他任何东西,它工作了。

在IntelliJ中,也不可能将它们混合在一起——将一些非散列项与散列项放在一起。因此,您必须配置其他SSH客户机以使用散列主机。


我们最近从IntelliJ 12更新到IntelliJ 14 Ultimate,我们也遇到了这个问题。我们的解决方案是在设置中禁用代理。我们也曾经不记得密码,但可能不确定这是否有帮助。 代理设置在文件设置-外观和行为-系统设置- http代理下。


设置——>版本控制——> Git,然后,在SSH可执行下拉菜单中,选择本机

如果这没有帮助,请确保您的本地ssh和git客户端是最新的版本。


进入首选项>版本控制> Git。确保SSH可执行文件设置为“本机”。(如果已经是这样,切换到“内置”,应用它,然后再次切换回“原生”。)

如果这不能解决你的问题,我建议下载一个Git客户端,如GitHub客户端(免费桌面应用程序),并尝试通过应用程序同步你的项目。然后返回IntelliJ,检查它是否工作。


@yabin ya说的是一个很酷的解决方案,只是提醒你:如果你仍然遇到同样的问题,去设置-版本控制- github,并使用ssh取消克隆git存储库。


我用在线课程的叉子时遇到了这个问题。我克隆了我的fork,然后遇到了权限错误。我不明白为什么它坚持说我是来自其他公司的用户。但是正如前面的评论者提到的,我已经检查了使用ssh设置的克隆git存储库,我忘记给我的新帐户添加ssh密钥。所以我这样做了,但仍然不能推,因为我得到了这个错误。我解决这个问题的方法是使用Github桌面客户端进行推送。

外卖:

When you open a new GitHub account make sure to add an ssh key to it Use different ssh keys for different accounts In general I run into some GitHub issue on IntelliJ at least once or twice for every project. Make sure you have a copy of GitHub desktop and load your projects into it. It can and will help you with lots of problems you may run into with Intellij - not just this one. It's actually a really nice GUI client and free! It probably makes sense to do what @yabin suggests and use the native client on a Mac


您需要生成一个新的SSH密钥并将其添加到您的SSH -agent。你应该点击这个链接。

在您创建公钥并将其添加到您的github帐户后,您应该在Intellij Idea中的设置->版本控制-> Git -> SSH可执行文件下使用内置(不是本机)选项。


不是解决方案/变通方法,但可能是对“可能是什么问题”的回答:

Gitlab和“在ssh库中构建的jetbrains”不能很好地一起工作。库希望使用基于SHA1的密钥交换算法,而gitlab(默认)只允许基于SHA2的密钥交换算法。

至少TeamCity (https://youtrack.jetbrains.com/issue/TW-47704)报告了这一点。

事实上,它也可能是你在IntelliJ中的拉/推问题的原因,也是我在PhpStorm中的推问题的原因,这是基于假设jetbrains为所有软件使用相同的“内置库”。


在我的情况下,唯一有帮助的事情(切换SSH-executabe没有工作)是停用git和git-flow插件,重新启动intellij并重新激活这些插件…


别忘了联系你的系统管理员。

因为在我的情况下,我已经正确配置了所有东西(SSH也添加了),但我得到了同样的错误

存储库访问被拒绝。致命的:无法从远程读取 存储库。

原因是我只有读访问权限。因此,不要浪费你宝贵的时间,请检查作为第一件事。 谢谢你!


我通过重新添加远程存储库解决了这个问题:VCS -> Git -> Remotes。


我通过删除PuTTY中的ssh密钥密码解决了这个问题。


如果所有这些都失败了,只要回到你的终端,从你的文件夹中输入:

git push origin master

这是众神最初想要的样子。


我开始得到不能从远程存储库错误最近与我的github存储库工作时。我的规格:

IntelliJ IDEA 2017.3.4(终极版) 设置->版本控制-> Git -> SSH可执行文件->内置 Fedora Linux

当然,这些问题只发生在试图从IDE中推/拉/取等时-从命令行执行相同的命令就像一个咒语。

这个方法对我很有效

我不想从内置SSH可执行文件切换到本地,主要是因为我的本地SSH客户端在我试图与远程存储库同步时要求我输入密码。

我通过从SSH远程URL切换到HTTPS URL解决了这个问题。根据这个GitHub帮助页面-建议使用HTTPS URL而不是SSH URL。

远程URL从SSH更改为HTTPS

在IntelliJ IDEA打开VCS -> Git -> Remotes…,选择包含“原点”的行,并按下编辑按钮。如果你在GitHub上托管你的存储库,从以下替换你的SSH URL:

git@github.com:USERNAME/REPOSITORY.git

to:

https://github.com/USERNAME/REPOSITORY.git

你也可以从你的GitHub存储库主页获得你的HTTPS URL -点击“克隆或下载”按钮,然后点击“使用HTTPS”链接来显示你的存储库的HTTPS URL:

更新2018-03-13

JetBrains刚刚发布了IntelliJ IDEA 2017.3.5,包括SSH访问GitHub的修复- https://blog.jetbrains.com/idea/2018/03/intellij-idea-2017-3-5-fix-for-ssh-access-to-github/


我最近(2018年2月)在WebStorm上遇到了这个问题,(当时)以前的解决方案都不适合我。在花了几个小时进行故障排除和研究后,我安装了2018年EAP版本,现在它可以工作了!


IntelliJ Idea > VCS/Git子系统于2017年12月报告的新问题,该问题在181.2445版本(或2018年1月31日之后的任何最新版本)中得到修复。

另请参阅post Update-ssh-key-to-use-new-passphrase


这帮助我解决了当前的问题

如果您使用的是macOS Sierra 10.12.2或更高版本,则需要修改~/。Ssh /config文件自动将密钥加载到Ssh -agent中,并在您的keychain中存储密码短语。

Host *
 AddKeysToAgent yes
 UseKeychain yes
 IdentityFile ~/.ssh/id_rsa


如果SSH不起作用,请确保在IntelliJ设置中选择“Native”后,将git存储库的链接更改为HTTPS选项。


pyCharm,

file|
    v-->settings|
                v-->Version Control|
                                   v-->Git

这里将SSH可执行文件从内置更改为本机

然后按apply并关闭


问题在我的电脑里解决了。 设置——>版本控制——>Git,然后,在SSH可执行下拉菜单中,选择内置选项。

安装旧版本的git,比如2.14.2。 它的工作很好!


如果你想连接到像github或bitbucket这样的云服务,请检查Idea代理设置。这可以通过寻找要安装的插件或在帮助菜单中检查软件更新来完成。 如果internet/代理设置不正确,请添加有效条目或将其设置为自动


进入“Settings”->Git->在“SSH可执行文件”下拉菜单中选择“Native”。(如果未选中) 从你的Github存储库复制HTTPS链接。 去VCS->Git->Remotes.. 编辑URL字段中的原点和粘贴HTTPS链接。 按Ctrl+Shift+k并将项目推到存储库。 它的工作原理。


在MacOS High Sierra (10.13.5)/IntelliJ IDEA 2018.4上,这为我修复了它(我使用SSH,而不是HTTPS,和本机git,而不是内置的):


我简单地解决了这个问题,确保我有正确的git SSH url没有任何尾随空格:

git@github.com:USERNAME/REPOSITORY.git

加上这个答案,因为没有一个答案对我有用。

我有证书颁发-所以下面的命令做到了戏法。

Git配置——global http。sslVerify假

从 https://confluence.atlassian.com/fishkb/unable-to-clone-git-repository-due-to-self-signed-certificate-376838977.html


什么都帮不了我。然后我看到计算机上的项目名称与git存储库中的名称不同。

所以我解决了这个问题。


我尝试了上面所有的解决方案(本机,更改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存储库,它可以工作,现有的项目也可以工作。有趣的事实是,当我切换到本机的想法设置,存储库不工作。


我也有同样的问题。正在使用bitbucket,在Intellij上拉/更新存储库时遇到了麻烦。尝试更改为本机和回内置,但它不工作。然后意识到我已经生成了带有密码短语的ssh密钥。

我重新生成了没有密码短语的密钥,然后将其添加到比特桶。 成功了!


我尝试了本机选项,但不适合我,最后以旧的方式重新生成ssh密钥,并在ssh-keygen命令中添加-m选项。此外,IDEA工作与内置选项一样好。

ssh-keygen -m PEM -t rsa -b 4096 -C "email@..."

我通过在命令中的SSH -agent中添加我的SSH私钥来解决这个问题:

$ ssh-add -K ~/.ssh/id_rsa

设置设置——>版本控制——> Git,然后,在SSH可执行下拉菜单中,选择本机


当添加远程URL时,更改它

https://username@bitbucket.org/usernameowner/project-name.git

这个

https://bitbucket.org/usernameowner/project-name.git


我改变了git路径,它工作了。


对我来说,解决方案是:设置˃版本控制˃Git˃使用凭证助手


我在macOS上的最新Android Studio版本(版本Chipmunk|2021.2.1)也面临着同样的问题。所以我没有在克隆项目中使用Intellij (Android studio)。 我通过以下命令-

git clone https://YOUR_GIT_DEVELOPER_KEY_FROM_CONSOLE@YOUR_GIT_URL 

假设这是你的回购,就像这样

git clone https://3didfe32434jndYnjs@github.com/Gkemon/Android-XML-to-PDF-Generator.git

更新至2022.2.4版本 从上面这么多的答案,我更新了我的ssh配置,但Intellij仍然不能做git的动作 唯一缺少的步骤是chmod 600 ~/。$USER ~/.ssh/config。在这之后,我重新启动了Intellij,它开始工作了