Jecko
Jecko

Reputation: 412

Get Permission denied (publickey) for Git push to Google Cloud Source Repository with Google Cloud SDK authentication method on Windows 10

I'm trying to use Google Cloud Source Repository as a remote repository. I followed all the procedures to authenticate with the Google Cloud SDK authentication method that allows me to not use SSH keys (as they say).

The problem is: I always get Permission denied (publickey) fatal: Could not read from remote repository. message when I try git push --all google.

The gcloud command is in my Windows PATH (C:\Users\xxxxx\AppData\Local\Google\Cloud SDK\;) and my user has enough permission as I'm the owner of the project in Google Cloud.

I know this message is usually a simple SSH key problem that can be resolved by adding my public key to the project, but this method is supposed to work without ssh keys, so I would like to learn what I am doing wrong.

Here the 2 first commands I made following the Google Cloud Source Repository procedure:

gcloud init && git config --global credential.https://source.developers.google.com.helper gcloud.cmd
git remote add google ssh://[email protected]@source.developers.google.com:2022/p/my-website-project/r/my_website

These 2 worked well.

Maybe someone could help me to find what to do to fix that.

Thank you.

Upvotes: 26

Views: 16670

Answers (8)

AlienTheDog
AlienTheDog

Reputation: 1

this :

git remote add google ssh://[email protected]@source.developers.google.com:2022/p/my-website-project/r/my_website

should be this :

git remote add google https://source.developers.google.com/p/[PROJECT_NAME]/r/[REPO_NAME]

Upvotes: 0

Ronnie Smith
Ronnie Smith

Reputation: 18595

Add a file named config (no file extension, i.e. no .txt extension) in OpenSSH directory (on Windows it should be in C:\Users\myusername\.ssh) with the following:

Host source.developers.google.com
    HostName source.developers.google.com
    User [email protected]
    IdentityFile ~/.ssh/my-private-key-file

Upvotes: 0

Jakub Galas
Jakub Galas

Reputation: 21

Open https://source.developers.google.com/new-password in the browser, log in and follow the instructions displayed. It worked in my case.

Upvotes: 2

harrolee
harrolee

Reputation: 784

In my (highly unusual) case, my company adopted Google Workspace. This created a new Google Workspace account with the same name as my original account ([email protected]) and then changed the name of my original account to [my name]%[company's domain][email protected].

Since the GCP permissions were associated with the original account, now named [my name]%[company's domain][email protected], I got the Permission Denied error. The remote url defined in my git config used the original email ([email protected]), now associated with a newly created Google Workspace account, and that account did not have permissions to access the Cloud Source Repo.

Upvotes: 0

Emmanuel
Emmanuel

Reputation: 17051

I had the same problem and none of the solutions I found worked. It turns out Google Cloud Source Repositories didn't like my SSH key. (Maybe the key was too short?) Anyway I tried switching to a ECDSA key and the error went away.

ssh-keygen -t ecdsa -C "[email protected]"

I had to replace my previous key with the new one in ~/.ssh/config too.

Upvotes: 12

Malkit S. Bhasin
Malkit S. Bhasin

Reputation: 79

Having similar issues so tried two things:

1 - suggestion in this topic

Did gcloud init and created and configured ~/.ssh/config but this did not solve the issue.

2 - Then tried the suggestion here and it worked...

How to solve Permission denied (publickey) error when using Git?

Upvotes: 0

Kyrylo Bulat
Kyrylo Bulat

Reputation: 800

I had the same problem.
These two commands worked well for me too:

gcloud init && git config --global credential.https://source.developers.google.com.helper gcloud.cmd
git remote add google ssh://[email protected]@source.developers.google.com:2022/p/my-website-project/r/my_website

But this one didn't work:

git push --all google

I had to edit ~/.ssh/config file to make it work. It solved my problem. I added:

Host source.developers.google.com
    HostName source.developers.google.com
    User [email protected]
    IdentityFile ~/.ssh/your_private_key_file_registered_for_the_source_repo

Read more about ~/.ssh/config file here

Upvotes: 14

Peter Murphy
Peter Murphy

Reputation: 121

I have the same issue on Linux (Mint/Ubuntu) when I was trying to set the remote of an existing repository to Google Cloud Source Repos. This is what it looks like you are attempting. However, this was the empty git repository generated by Expo CLI Quickstart, which had no files or source history at all.

What I did instead was clone the existing repository on Google Cloud Source Repos to my computer, add a dummy file, commit it and push. That worked for me. Hopefully it works for you.

Upvotes: 1

Related Questions