ChatGPT解决这个技术问题 Extra ChatGPT

git with IntelliJ IDEA: Could not read from remote repository

Since a few weeks, I'm not able to pull or push from or to the remote repository. I thought it happend when upgrading to IntelliJ IDEA 14, but I can reproduce the problem with IDEA 13.1.5 as well.

The tooltip says "Fetch failed fatal: Could not read from remote repository."

and the exception in the Version Control tab reads

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.

Using the built-in terminal of IntelliJ, executing git -c core.quotepath=false fetch origin --progress --prune, it works just as it should.

According to the stacktrace, there seems to be a problem with my KnownHosts, so I deleted our git server from ~/.ssh/known_hosts, hoping IntelliJ would insert it again. But the problem still appears when updating via the UI, and there is no new entry written in known_hosts; thinking about some caching of the file, I restarted IntelliJ, without success.

When doing another git fetch from the terminal, now I'm getting asked if I want to permanently add the server. After that, it has been written to known_hosts again, but IntelliJ still won't let me update my project.

I haven't found anything about this behavior online, so I guess it's not a known bug with the new IntelliJ version. Nevertheless, I updated to 14.0.2, but the problem still exists.

IntelliJ is configured to use the built-in SSH executable.

Does anybody have a clue what could be the problem here?

Did you manually add an SSH key to your git repository?
@aurelius yes, we're using GitLab, and I've posted it there into my profile.
IntelliJ is unhappy with your public/private key pair. How did you generate it?
@yole I tried both puttygen and Git GUI, as it was my first thought too. Are you sure it's about my key pair? The exception seems to be about the known hosts: code.google.com/p/connectbot/source/browse/src/com/trilead/ssh2/…
Not sure about the downvote - there seems to be a problem with hashed/unhashed entries in known_hosts. I'm going to dig into it a little further and answer the question.

M
Matthias Braun

Settings --> Version Control --> Git, and then, in the SSH executable dropdown, choose Native

https://i.stack.imgur.com/sdTcZ.png

If this doesn't help, ensure that your native ssh and git clients are of a sufficiently recent version.


I know that it's possible to change the SSH implementation, I even explicitly wrote that I'm using the built-in executable (what I haven't wrote: native doesn't work for me on Windows) But you post doesn't answer my question what the problem with the built-in executable could be.
@Jimbo Just my assumption, but this is how I understand it: Built in uses another "User" in your repository, previously that "User" was allowed to push files and changes. That "User" was resetted in an Update and is no longer able to. Native uses the Account youre signed in on your machine.
Strange. i had 3 separate computers all start doing this to me after working for 2+ years. this fixed it. WTF
@NicholasDiPiazza This is related to Github removing cryptographic standards github.com/blog/2507-weak-cryptographic-standards-removed . Also other software that use "built-in" libraries (e.g. TeamCity) are affected by this change. Your native git client is probably up-2-date, that's why this step fixes it.
This answer should be accepted. Fixed the problem for me when it suddenly appeared after working fine for 3+ years.
b
biniam

Go to Preferences > Version Control > Git. Make sure SSH executable is set to “Native.” (If it's already so, switch it to “Built-in,” apply it, and then again switch back to “Native.”).

If this doesn't solve your issue, I would suggest to download a Git client such as GitHub client (free desktop app) and try to sync your project through the app. Then go back to IntelliJ and check if it works.


Works fine in Android Studio as well. This issue was making me mad, thanks @Farbod jan!
Toggling SSH executable worked for me. I was already on Native as well.
For everyone considering going back to built-in: consider updating your native SSH first. The native executable is used throughout the OS and will behave consistently inside and outside your IDE.
S
Szymon Stepniak

I started getting Could not read from remote repository error recently when working with my repository. My specs:

IntelliJ IDEA 2017.3.4 (Ultimate Edition)

Settings -> Version Control -> Git -> SSH executable -> Built-In

Fedora Linux

https://i.stack.imgur.com/oXlnQ.png

Of course those problems occurred only when trying to push/pull/fetch etc. from IDE - executing same commands from command line worked like a charm.

Solution that worked for me

I didn't want to switch from Built-In SSH executable to Native, mostly because my native SSH client asks me for the password anytime I try to sync with remote repository.

I solved this problem by switching from SSH remote URL to HTTPS URL. According to this GitHub help page - it is recommended to use HTTPS URL instead of SSH one.

Changing remote URL from SSH to HTTPS

In IntelliJ IDEA go to VCS -> Git -> Remotes..., select row containing "origin" and click on edit button. If you host your repository on GitHub, replace your SSH URL from:

git@github.com:USERNAME/REPOSITORY.git

to:

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

You can also get your HTTPS URL from your GitHub repository home page - click on "Clone or download" button and click on "Use HTTPS" link to display your repository's HTTPS URL:

https://i.stack.imgur.com/VMZVz.png

UPDATE 2018-03-13

JetBrains just released IntelliJ IDEA 2017.3.5 that includes fix for SSH access to GitHub - https://blog.jetbrains.com/idea/2018/03/intellij-idea-2017-3-5-fix-for-ssh-access-to-github/


This is the solution that worked for me on a MacBook Pro, PHPStorm 2017.3.4) (January 30, 2018 before the noted 1/31 necessary build date).
This solution worked, usually, the issue is many users try to use SSH key to define remote, but it gives you an error. Switching from SSH to HTTPS is the solution most of the times.
using the link based on https slove my issue on PhpStorme version 2018.1.5
This solution worked for me on MacBook Pro , Intellij IDEA.
Also works with GitLab to change the URL to https link.
d
danronmoon

IntelliJ's built-in SSH client seems to hash its known_hosts, but the one I had had its host names in clear text.

When I deleted the file and let IntelliJ create a new one, with only my (hashed) GitLab server and nothing else, it worked.

It's also not possible to mix it - keep some unhashed entries together with hashed entries for IntelliJ. So, you have to configure your other SSH clients to use hashed hosts.


S
Sarvesh Athawale

Go to Settings->Git->Select Native in SSH executable dropdown. (If it is not selected) Copy HTTPS link from your Github repository. Go to VCS->Git->Remotes.. Edit the origin and Paste HTTPS link in the URL field. Press Ctrl+Shift+k and push the project to repository. It works.


Where's the connection between SSH & replacing the URLs with the HTTPS protocol?
i just wanna know, where on earth did anyone mention github here?
This worked for me, It asked me for my bitbucket credentials, then its good to go.
A
Ahmed Ashour

For me the solution was: Settings ˃ Version Control ˃ Git ˃ Use Credential helper

https://i.stack.imgur.com/Q65Qc.png


Uncheck it right?? or check?
I recall: it should be "checked".
M
Mohideen bin Mohammed

in pyCharm,

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

Here change SSH executable from Built-in into Native

then press apply and close


N
Nikita Zamalyutdinov

I solved this issue by re-adding remote repository: VCS -> Git -> Remotes.


Not a good option on my case... Now I can't re-add it again, getting the message "Invalid remote [...] Remote URL test failed: Could not read from remote repository. " Obs: I can connect to github through git cli.
Same issue as @Ricardo
@uri none of the solutions worked for me. I installed 2018 EAP which has fixed an issue reported on Dec 2017. It finally worked! see also the post Update-ssh-key-to-use-new-passphrase
I added comments to the question, but they got hidden. So I added an answer too.
For unknown me reason it works for PHPStorm 2017.4. Thanks!
X
XYz Amos

what @yabin ya says is a cool solution, just remind you that: if u still get the same problem,go to Settings-Version Control-GitHub and uncheck the Clone git repositories using ssh.


a
abshar

You need to Generate a new SSH key and add it to your ssh-agent. For That you should follow this link.

After you create the public key and add it to your github account, you should use Built-in (not Native) option under Setting-> Version Control -> Git -> SSH executable in your Intellij Idea.


For me switching to Native solved the problem, on Mac
I struggled with this problem for about a week or so(luckily, I could use git command line in the meantime)..How I finally solved it was regenerating my SSH Keys, but also I had to restart my computer and use the command line ssh-add.
K
Koen de Roo

We've recently updated from IntelliJ 12 to IntelliJ 14 Ultimate and we've encountered this problem too. Our solution was to disable the proxy in the settings. We also stopped remembering the passwords once, but might not sure if that helps. Proxy settings are under File-Settings-Apearance & Behavior-System settings-HTTP Proxy.


That's interesting! So you had the same stacktrace?
We had the same stacktrace (I've changed the answer a bit btw)
J
Jenya Kirmiza

this helped me to fix current issue

If you're using macOS Sierra 10.12.2 or later, you will need to modify your ~/.ssh/config file to automatically load keys into the ssh-agent and store passphrases in your keychain.

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

source


S
Steve Borland

I solved this issue by removing the password for the ssh key in PuTTY.


V
Volodymyr

I've resolved this by adding my SSH private key to the ssh-agent in the command:

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

And setting Settings --> Version Control --> Git, and then, in the SSH executable dropdown, choose Native


A
ArjanW

Not a solution / workaround but perhaps an answer to the question 'what could be the problem':

Gitlab and the 'jetbrains built in ssh library' do not work well together. The library wants to use SHA1 based key exchange algorithm where gitlab (default) only allows SHA2 based key exchange algorithm's.

This was reported for at least TeamCity (https://youtrack.jetbrains.com/issue/TW-47704).

The fact that it also might be the cause for your pull/push problem in IntelliJ, and also my push-problem in PhpStorm is based on the ASSUMPTION jetbrains use the same 'built in library' for all their software.


A
Aron T

I had this problem with a fork from some online course. I cloned my fork and ran into a permissions error. I couldn't understand why it was insisting I was my user from my other company. But as the previous commenter mentioned I had the Clone git repositories using ssh setting checked and I had forgotten to add an ssh key to my new account. So I did and then still couldn't push because I got THIS error. The way I solved it was to push using the Github Desktop client.

Takeaways:

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


P
Patrick Dorn

The only thing that helped in my case (switch SSH-executabe did not work) was to deactivate the git and git-flow plugin, restart intellij and reactivate those plugins again...


R
Rahal Kanishka

Don't forget to contact your system administrator.

Because in my case I had every thing rightly configured(SSH also added) but I got the same error

repository access denied. fatal: Could not read from remote repository.

the reason was I only had read access to that repository. Therefore with out wasting your valuable time please check that as the first thing. Thank you.


You got java.io.IOException: Padding in RSA public key! in the log when there are no sufficient permissions? That's interesting and could indicate a bug in IntelliJ's SSH handling.
W
Wilmer E. Henao

If all else fails just go to your terminal and type from your folder:

git push origin master

That's the way the Gods originally wanted it to be.


R
Ricardo

I had this issue with WebStorm recently (February/2018) and none of the (then) previous solutions worked for me. After spending some hours on troubleshooting and researching, I installed the 2018 EAP version and now it works!

A new issue reported on December/2017 on IntelliJ Idea > VCS/Git subsystem which was fixed in build 181.2445 (or any latest build after 31/Jan/2018).

See also the post Update-ssh-key-to-use-new-passphrase


Thanks for the Link. For others TL;DR, the key comment for me was Nate: "A solution that worked for me: under Settings > Appearance & Behavior > System Settings > Passwords..." ...Switch to Do not save, forget passwords after restart, Do the Pull, then switch it back.
V
Viral Nakrani

The problem is solved in my pc. settings-->Version Control-->Git ,and then, In the SSH executable drop-down, select built-in option.

and install git older version something like 2.14.2. Its works good!


b
binithb

Check Idea proxy settings if you are trying to connect to cloud services like github or bitbucket. This can be done by looking for plugins to install or by checking for software updates in the help menu. If the internet/proxy settings are not correct add valid entries or set it to auto


c
connexo

This fixed it for me (I am using SSH, not HTTPS, and the native git, not the built-in) on MacOS High Sierra (10.13.5)/IntelliJ IDEA 2018.4:

https://i.stack.imgur.com/HZKTP.png


i
imans77

I Solved the issue simply by ensuring that I had the correct git SSH url without any trailing spaces:

git@github.com:USERNAME/REPOSITORY.git

G
Gaurav

Adding this answer since none of the answers worked for me.

I had certificates issue - so following command did the trick.

git config --global http.sslVerify false

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


u
user3231514

I tried all solutions above (Native, changing url of VCS repository, updating Git, updating IDEA, invalidating Caches), but nothing helped me. Finally I found solution that works for me.

SOLUTION: I closed Idea and replaced content of file ~\.IntelliJIdea20xx.x\config\options\git.xml with this:

<application>
  <component name="Git.Application.Settings">
    <option name="SSH_EXECUTABLE" value="IDEA_SSH" />
  </component>
</application>

Then I started IDEA, try to checkout SSH GIT repository and it works and existing projects works as well. Interesting fact is that when I switch to NATIVE in Idea Settings, repository not working.


N
NullPointer

I had the same problem. Was using bitbucket and had trouble in pulling/updating the repository on Intellij. Tried changing to native and back to built in, but it was not working. Then realized that I had generated the ssh key with a passphrase.

I regenerated the key without the passphrase and then added it to the bitbucket. It worked !


A
Alireza Alallah

I tried Native option but does not work for me, finally regenerate ssh key in old way and add -m option in ssh-keygen command. also IDEA works with build-in option as fine.

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

S
Smart Coder

I changed git path and it worked.

https://i.stack.imgur.com/Z8S8o.png


G
Gk Mohammad Emon

I'm facing the same issue with the latest Android Studio version on macOS (Version Chipmunk|2021.2.1). So I'm not using Intellij (Android studio) for the cloning project. I do it by the following command -

git clone https://YOUR_GIT_DEVELOPER_KEY_FROM_CONSOLE@YOUR_GIT_URL 

Suppose this is your repo, so it will be like that

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