git with IntelliJ IDEA: Could not read from remote

2019-01-16 01:26发布

问题:

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?

回答1:

settings-->Version Control-->Git ,and then, In the SSH executable dropdown, choose Native

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



回答2:

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.



回答3:

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

  • IntelliJ IDEA 2017.3.4 (Ultimate Edition)
  • Settings -> Version Control -> Git -> SSH executable -> Built-In
  • Fedora Linux

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:

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/



回答4:

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.



回答5:

in pyCharm,

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

Here change SSH executable from Built-in into Native

then press apply and close



回答6:

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


回答7:

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



回答8:

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.



回答9:

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.



回答10:

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.



回答11:

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



回答12:

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.



回答13:

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



回答14:

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:

  1. When you open a new GitHub account make sure to add an ssh key to it
  2. Use different ssh keys for different accounts
  3. 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!
  4. It probably makes sense to do what @yabin suggests and use the native client on a Mac


回答15:

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...



回答16:

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.



回答17:

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.



回答18:

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



回答19:

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!



回答20:

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



回答21:

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:



回答22:

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


回答23:

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



回答24:

Nothing helped me. Then I saw that the name of the project on the computer is different from the name on the git repository.

So I solved the problem.



回答25:

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.



回答26:

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 !



回答27:

Ensure that you've changed the link to the git repository to the HTTPS option after you've selected "Native" in IntelliJ settings if SSH doesn't work.