简体   繁体   中英

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://username@gmail.com@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.

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://username@gmail.com@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 username@gmail.com
    IdentityFile ~/.ssh/your_private_key_file_registered_for_the_source_repo

Read more about ~/.ssh/config file here

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 "myuser@mygmailhost.com"

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

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.

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?

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 ( original@domain.com ) and then changed the name of my original account to [my name]%[company's domain].com@gtempaccount.com .

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

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

Add a file named config (no file extension, ie 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 myemail@mydomain.com
    IdentityFile ~/.ssh/my-private-key-file

this:

git remote add google ssh://username@gmail.com@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]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM