63

I have a git project at Android Studio and a remote at BitBucket and I changed it to use SSH instead of HTTPS. I can make everything work using Atlassian's SourceTree, but in Android Studio every time I try to push the project it says

Push failed: fatal: Could not read from remote repository.

Does anyone have a clue about what could be happening?

Michel Feinstein
  • 13,416
  • 16
  • 91
  • 173

15 Answers15

79

This is probably an Intellij problem. Your key are managed natively by ssh, and Intellij has it's own ssh program.

Go to the settings, search git->ssh executable then choose native

As seen here : git with IntelliJ IDEA: Could not read from remote repository

Community
  • 1
  • 1
Nicolas Zozol
  • 6,910
  • 3
  • 50
  • 74
  • 2
    Thanks for that, this worked on OSx. Normally the default setting works if you are on a clean machine, e.g first time install of Intellij, but in my case the machine has multi-user logins which may have impacted on the defaults. – Ed Manners Feb 06 '17 at 17:23
  • This didn't work in my case (for Android Studio 3.1). Please see my answer below. – Alexander Poleschuk Oct 25 '18 at 13:07
19

Go to Settings > Version Control > Git. Make sure SSH executable is set to “Native.”

If it's already set, switch back to “Built-in,” apply it, and then again switch back to “Native".

enter image description here

Johnny
  • 14,397
  • 15
  • 77
  • 118
18

There is two ways for Git SSH verification in Android Studio or IntelliJ, changing via: settings - Version Control - Git - SSH excuteable - "Built-in" or "Native"

  1. Built-in : means using ssh key pair built in Git for authentication. you can generate it via
    ssh-keygen -t rsa
    the default saved path is "~/.ssh/id_rsa" and "~/.ssh/id_rsa.pub". You should add the Public key in your BitBucket account. the path like : manage account - SSH keys - add keys
  2. Native : means using the ssh pair generated by the native repository hosting service, such as BitBucket or GitHub, which is often auto-add in the service account. For example in GitHub. It generated a pair of SSH key, "~/.ssh/github_rsa.pub" and "~/.ssh/github_rsa" and the Public key has been auto-added in my account via GitHub GUI maybe. So change the SSH executable to "Native" could be a simple way.

Anyway, you can use the both way after you add the correct Public key in you acoount in repository hosting service.

Joe Wang
  • 371
  • 3
  • 7
  • if you choose built-in: you can refer @kid 's answer. Regenerate your public ssh key and add it to your git hub repository.
    `ssh-keygen -t rsa`
    And the public ssh key is generated in __~/.ssh/id_rsa.pub__ paste it to you git Hub account. path is
    account - settings - SSH keys
    – Joe Wang Apr 08 '15 at 12:50
6

Despite my SSH-executable was set to Native I was getting that error because I have set password for SSH key file.

I haven't found the way how to specify password in Android studio but there is another solution, you can remove password which can be done with $ ssh-keygen -p. Then just confirm file location, enter your old password and leave new password blank.

Taken from How do I remove the passphrase for the SSH key without having to create a new key?

Roman Nazarevych
  • 7,513
  • 4
  • 62
  • 67
  • 1
    Followed this but instead of reseting the passphrase, I set it to the same passphrase again. The act of doing this caused Android Studio to eprompt me for the SSH passphrase in a popup when I next pushed... and all was well with the world again. – unfinishedmonkey Feb 12 '19 at 20:54
4

Another solution that helped me was "Use credential helper".

Android - Settings

Suraj Rao
  • 29,388
  • 11
  • 94
  • 103
2

I got the same issue. Turns out it matters how you run Android Studio. If you run it with normal privileges from terminal or sth, it cannot read local files that it has to in order to push repository.

Solution might just be to restart Android Studio with more privileges than it currently has.

mdzeko
  • 932
  • 10
  • 19
1

Go to github.com and open your repository and copy USE HTTPS url Go to your Android project directory. In the .git folder search for config file.

IN the config file change url which you copied from github.com (use https) with the previous url. save config file and push again. This worked for me.

1

I had a similar problem in Android Studio 3.1

I changed Preferences > Version Control > Git > SSH executable from Built-in to Native as suggested here but it didn't help.

Then I upgraded Android Studio to 3.2 and switched back to Built-in. It fixed the issue in my case.

  • Happy it worked for you. Eventually the switching did the trick, and that is what suggested :) – Johnny Oct 25 '18 at 13:08
  • Maybe but I am not sure :-) I did the switching a few times to Native then back to Built-in. It didn't work until I upgraded to Android Studio 3.2. Thanks anyway. – Alexander Poleschuk Oct 25 '18 at 13:13
1

Got the issue after switching to Android Studio 3.6 when under the hood it was bumped to IDEA 2019

In my case below solution worked out of the box:

  1. Help - Find Action - Registry...
  2. Find git.use.builtin.ssh and enable it
SILINIK
  • 988
  • 7
  • 16
1

What resolved this issue for me was going into Settings > Version Control > Git and checking "Use credential helper". I had recently downloaded the canary version of Android Studio and opted to not migrate my settings so this little setting which is checked on my release version was no longer checked on the canary version.

Dharman
  • 30,962
  • 25
  • 85
  • 135
Matthew Bates
  • 131
  • 1
  • 9
0

I ran across this myself, and found the existing answers were a bit incomplete.

tl;dr: Switching Android Studio/IntelliJ's SSH client from built-in to native may resolve the issue for you (it did for me).

Android Studio (effectively a specialized IntelliJ IDEA) comes with its own built-in SSH client, but allows you to switch to native (platform / OS dependent) if you prefer. You can change this by opening your Android Studio options, search for 'git', and choose 'native' in the SSH executable dropdown.

In my case, I was unable to push to BitBucket through Android Studio, but git push worked just fine. Switching to native (OSX SSH, in my case) resolved the issue - now I can push to BitBucket from Android Studio.

Other answers touched on the subject, but there appears to have been some mixup between SSH executables and the keys that they use.

Per Android Studio help under SSH Executable:

  • Built-in: select this option to use the implementation provided by IntelliJ IDEA.
  • Native: select this option to use native implementation.
Clay H
  • 651
  • 9
  • 21
0

I have met this problem, and finally I have solved it. And there are two important points for setting: In the android studio: File-Settings-GitHub: not to choose "Clone git repositories using ssh" In the android studio: File-Settings-Git: Choose "Built-in" for "SSH executable"

and for the SSH that I already have in the account of GitHub, is the one that I have in the android studio, I forget how to find the SSH in the android studio, But you can find it by the other way

EXEEE
  • 1
0

If changing Preferences > Version Control > Git > SSH executable from Built-in to Native is not working then pls try with unchecking the Preferences > Version Control > GitHub>clone git repositories using ssh CHECK IT

0

In my case it works at first time but later same error got encountered so i just pushed through terminal

git push -u origin <your branch name>

it will asks for password enter it note i am using bitbucket

manu mathew
  • 81
  • 1
  • 4
-2

Regenerate your public ssh key and add it to your git hub repository.

ssh-keygen -t rsa

It worked in my case.

HaveNoDisplayName
  • 8,291
  • 106
  • 37
  • 47
kid
  • 112
  • 1
  • 2
  • 5