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?

16
  • 2
    You might have to add the remote again. That error message happens when Git doesn't know where to push to. Check out this similar question: stackoverflow.com/questions/15409841/… I think the top answer should help you. Commented Jul 11, 2014 at 1:16
  • 1
    But my configurations file has the remote url in it, and SourceTree can make the push... Commented Jul 11, 2014 at 1:18
  • 2
    Hm.. And the remote has the correct SSH url, not the old HTTPS url? Commented Jul 11, 2014 at 1:22
  • 9
    I tried searching for this issue but with "IntelliJ" instead of "Android Studio" to get more results, and I found this: askubuntu.com/questions/436610/… It suggests using a Native SSH executable instead of Built-in so that IntelliJ (or Android Studio, as it were) uses your correct SSH key. This answer implies your concern about Android Studio not asking for your keys is warranted. Commented Jul 11, 2014 at 1:44
  • 1
    I wish I could tag people a Google in here.... Commented Jul 11, 2014 at 1:55

15 Answers 15

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

Sign up to request clarification or add additional context in comments.

2 Comments

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.
This didn't work in my case (for Android Studio 3.1). Please see my answer below.
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

3 Comments

This didn't work in my case (for Android Studio 3.1). Please see my answer below.
for those doesn't work, maybe you want to check your current git executable in the terminal: $: which git point the executable and replace it on android In my case, this work on AS 3.2.1 @AlexanderPoleschuk
@mochadwi Thanks. After I upgraded to Android Studio 3.2 my problem was fixed.
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.

1 Comment

if you choose built-in: you can refer @kid 's answer. Regenerate your public ssh key and add it to your git hub repository.<br> ssh-keygen -t rsa <br> And the public ssh key is generated in ~/.ssh/id_rsa.pub paste it to you git Hub account. path is <br> account - settings - SSH keys
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?

1 Comment

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

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

Android - Settings

Comments

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.

2 Comments

Are you running it on Windows?
Surprisingly your solution worked for me. Typical restart trick.
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.

Comments

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.

2 Comments

Happy it worked for you. Eventually the switching did the trick, and that is what suggested :)
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.
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

Comments

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.

Comments

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.

Comments

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

Comments

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

Comments

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

Comments

-2

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

ssh-keygen -t rsa

It worked in my case.

1 Comment

I don't know why all the minuses but this actually solved my issue

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.