首页 文章

使用IntelliJ IDEA的git:无法从远程存储库读取

提问于
浏览
225

几个星期以来,我无法从远程存储库中拔出或推送 . 我认为升级到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 回答

  • 0

    不要忘记联系您的系统管理员 .

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

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

    原因是我只对该存储库具有读访问权限 . 因此,在浪费宝贵时间的同时,请先检查一下 . 谢谢 .

  • 2

    如果您尝试连接到github或bitbucket等 Cloud 服务,请检查Idea代理设置 . 这可以通过查找要安装的插件或通过检查 help 菜单中的软件更新来完成 . 如果互联网/代理设置不正确,请添加有效条目或将其设置为 auto

  • 0

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

  • 0

    这有助于我解决当前的问题

    如果您使用的是macOS Sierra 10.12.2或更高版本,则需要修改〜/ .ssh / config文件以自动将密钥加载到ssh-agent中并在密钥链中存储密码 .

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

    source

  • 0

    什么都没有帮助我 . 然后我看到计算机上项目的名称与git存储库上的名称不同 .

    所以我解决了这个问题 .

  • 0

    在pyCharm中,

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

    这里将 SSH executableBuilt-in 更改为 Native

    然后按 applyclose

  • 1

    我最近在使用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替换为:

    git@github.com:USERNAME/REPOSITORY.git
    

    至:

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

    您还可以从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/

  • 36

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

  • 68

    我只是通过确保我有正确的git SSH url而没有任何尾随空格来解决这个问题:

    git@github.com:USERNAME/REPOSITORY.git
    
  • 5

    不是解决方案/解决方法,但也许是对“可能是什么问题”这个问题的回答:

    Gitlab和“在ssh库中构建的jetbrains”并不能很好地协同工作 . 该库希望使用基于SHA1的密钥交换算法,其中gitlab(默认)仅允许基于SHA2的密钥交换算法 .

    据报道至少是TeamCity(https://youtrack.jetbrains.com/issue/TW-47704) .

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

  • 0

    这对我来说是固定的(我使用的是SSH,而不是HTTPS,以及MacOS High Sierra上的本机git,而不是内置的)(10.13.5)/ IntelliJ IDEA 2018.4:

  • 1

    我尝试了上面的所有解决方案(Native,更改VCS存储库的URL,更新Git,更新IDEA,使Caches无效),但没有任何帮助 . 最后,我找到了对我有用的解决方案 .

    解决方案:我关闭了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存储库,它可以工作,现有项目也可以工作 . 有趣的是,当我在Idea Settings中切换到NATIVE时,存储库无法正常工作 .

  • 0

    IntelliJ的内置SSH客户端似乎是hash its known_hosts,但我的主机名是明文 .

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

    它也不可能混合使用 - 保留一些未散列的条目以及IntelliJ的散列条目 . 因此,您必须配置其他SSH客户端to use hashed hosts .

  • 0

    我的电脑解决了这个问题 .
    settings-->Version Control-->Git ,然后,在SSH可执行文件下拉列表中,选择 built-in 选项 .

    并安装git旧版本,如 2.14.2 .
    它的作品很好!

  • 0

    添加这个答案,因为没有一个答案对我有用 .

    我有证书问题 - 所以下面的命令就行了 .

    git config --global http.sslVerify false

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

  • 668

    我从一些在线课程中用叉子解决了这个问题 . 我克隆了我的fork并遇到了权限错误 . 我无法理解为什么它坚持我是我的另一家公司的用户 . 但正如之前的评论者提到的那样,我检查了 Clone git repositories using ssh 设置,而我忘了在我的新帐户中添加一个ssh密钥 . 所以我做了然后仍然无法推动因为我得到了这个错误 . 我解决它的方法是推动使用Github桌面客户端 .

    小贴士:

    • 当您打开一个新的GitHub帐户时,请确保为其添加一个ssh密钥

    • 为不同的帐户使用不同的ssh密钥

    • 一般情况下,我在IntelliJ上遇到一些GitHub问题,每个项目至少一次或两次 . 确保您拥有GitHub桌面副本并将项目加载到其中 . 它可以并且将帮助您解决Intellij可能遇到的许多问题 - 而不仅仅是这个问题 . 它实际上是一个非常好的GUI客户端,免费!

    • 执行@yabin建议并在Mac上使用本机客户端可能是有意义的

  • 12

    转到首选项>版本控制> Git . 确保SSH可执行文件设置为“Native . ”(如果已经是,请将其切换为“Built-in”,应用它,然后再次切换回“Native” . ) .

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

  • 0

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

  • 3

    如果一切都失败了,只需转到您的终端并从您的文件夹中输入:

    git push origin master
    

    这就是神最初想要的方式 .

  • 5

    我最近在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

  • 0

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

  • 0
    • 转到设置 - > Git->在SSH可执行文件下拉列表中选择本机 . (如果未选中)

    • 从Github存储库复制HTTPS链接 .

    • 转到VCS-> Git->遥控器..

    • 在URL字段中编辑原点和粘贴HTTPS链接 .

    • Ctrl+Shift+k 并将项目推送到存储库 . 有用 .

  • 10

    您需要生成一个新的SSH密钥并将其添加到您的ssh-agent . 为此你应该遵循这个link .

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

  • 18

    我有同样的问题 . 使用bitbucket并且无法在Intellij上提取/更新存储库 . 尝试更改为本机并返回内置,但它无法正常工作 . 然后意识到我用密码短语生成了ssh密钥 .

    我重新生成没有密码的密钥,然后将其添加到bitbucket . 有效 !

  • 0

    @yabin ya所说的是一个很酷的解决方案,只是提醒你:如果你仍然遇到同样的问题,请转到Settings-Version Control-GitHub并取消选中 Clone git repositories using ssh .

  • 9

    在我的情况下唯一有用的东西(切换SSH-executabe不起作用)是停用git和git-flow插件,重新启动intellij并再次重新激活这些插件......

  • -1

    settings-->Version Control-->Git ,然后,在SSH可执行文件下拉列表中,选择“原生”

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

相关问题