IntelliJ IDEA无法从远程存储库读取

几个星期以来,我不能从远程存储库中拉或推到远程存储库中。我以为这是在升级到IntelliJ IDEA 14时发生的,但我也可以用IDEA 13.1.5重现这个问题。

提示说 “获取失败 无法从远程存储库读取。" < / p >

版本控制选项卡中的异常为

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可执行文件。

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

210619 次浏览

IntelliJ的内置SSH客户端似乎是哈希其known_hosts,但我有一个明文主机名。

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

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

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

Settings --> Version Control --> Git,然后,在SSH可执行文件下拉菜单中,选择Native

Version Control: Git: SSH executable: For current project .

如果这没有帮助,请确保您的本机sshgit客户端是最新的版本。

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

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

@yabin ya说的是一个很酷的解决方案,只是提醒你:如果你仍然遇到同样的问题,去设置-版本控制- github并取消选中Clone git repositories using ssh

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

外卖:

  1. 当你打开一个新的GitHub账户时,一定要给它添加一个ssh密钥
  2. 不同的帐户使用不同的ssh密钥
  3. 一般来说,我在IntelliJ上每个项目都会遇到至少一两次GitHub问题。确保你有一个GitHub桌面的副本,并将你的项目加载进去。它可以并且将帮助您解决使用Intellij可能遇到的许多问题——不仅仅是这个问题。这实际上是一个非常好的GUI客户端,而且是免费的!
  4. 按照@yabin的建议,在Mac上使用本机客户端可能是有意义的

您需要生成一个新的SSH密钥并将其添加到您的SSH -agent。对于That,你应该遵循链接

在您创建公钥并将其添加到您的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也添加了),但我得到了同样的错误

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

,原因是我只有读访问该存储库。因此,不要浪费你宝贵的时间,请检查作为第一件事。 谢谢你。< / p >

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

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

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

git push origin master

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

我最近在使用我的存储库时开始得到Could not read from remote repository错误。我的规格:

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

enter image description here

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

这个方法对我很有效

我不想从Built-In SSH可执行文件切换到Native,主要是因为每当我尝试与远程存储库同步时,我的本地SSH客户端都会要求我输入密码。

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

更改远程URL从SSHHTTPS

在IntelliJ IDEA中,转到VCS -> Git -> Remotes…,选择包含“origin”的行,然后单击编辑按钮。如果你在GitHub上托管你的存储库,从以下替换你的SSH URL:

git@github.com:USERNAME/REPOSITORY.git

:

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

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

enter image description here

更新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/

我有这个问题与WebStorm最近(2018年2月/)和没有一个(然后)以前的解决方案为我工作。在花了一些小时的故障排除和研究,我安装了2018年的EAP版本和现在它工作!


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

另见帖子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

source

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

在pyCharm,

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

这里将SSH executableBuilt-in改为Native

然后按applyclose

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

并安装旧版本的git,例如2.14.2 它的工作很好!< / p >

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

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

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

File ->使缓存无效并重新启动 .

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

git@github.com:USERNAME/REPOSITORY.git

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

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

Git配置——global http。sslVerify假

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

什么都帮不了我。然后我看到计算机上的项目名称与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密钥。

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

我尝试了Native选项,但不适合我,最后以旧方式重新生成ssh密钥,并在ssh-keygen命令中添加-m选项。同样,的想法也适用于build-in选项。

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

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

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

并设置Settings --> Version Control --> Git,然后,在SSH可执行下拉菜单中,选择Native

当添加远程URL时,更改它

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

这个

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

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

enter image description here

对我来说,解决方案是:Settings˃Version Control˃Git˃Use Credential helper

enter image description here

我在macOS (Version Chipmunk|2021.2.1)上的最新Android Studio版本也面临同样的问题。所以我没有在克隆项目中使用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 ~/.ssh/configchown $USER ~/.ssh/config。在此之后,我重新启动Intellij,它正在工作