Получить разрешение (publickey) для Git push в Google Cloud Source Repository с помощью метода аутентификации Google Cloud SDK в Windows 10

Я пытаюсь использовать Google Cloud Source Repository в качестве удаленного хранилища. Я выполнил все процедуры аутентификации с помощью метода аутентификации Google Cloud SDK, который позволяет мне не использовать ключи SSH (как они говорят).

Проблема в том, что я всегда получаю Permission denied (publickey) fatal: Could not read from remote repository. сообщение, когда я пытаюсь git push --all google,

gcloud команда находится в моем пути Windows (C:\Users\xxxxx\AppData\Local\Google\Cloud SDK\;) и у моего пользователя достаточно прав, поскольку я являюсь владельцем проекта в Google Cloud.

Я знаю, что это сообщение обычно представляет собой простую проблему с ключом SSH, которую можно решить, добавив мой открытый ключ в проект, но этот метод должен работать без ключей ssh, поэтому я хотел бы узнать, что я делаю неправильно.

Вот две первые команды, которые я сделал, следуя процедуре Google Cloud Source Repository:

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

Эти 2 работали хорошо.

Может быть, кто-то может помочь мне найти, что нужно сделать, чтобы это исправить.

Спасибо.

8 ответов

У меня была такая же проблема, и ни одно из решений, которые я нашел, не сработало. Оказывается, репозиториям Google Cloud Source не понравился мой SSH-ключ. (Возможно, ключ был слишком коротким?) В любом случае я попытался переключиться на ключ ECDSA, и ошибка исчезла.

      ssh-keygen -t ecdsa -C "myuser@mygmailhost.com"

Мне также пришлось заменить мой предыдущий ключ новым в ~/.ssh/config.

У меня такая же проблема.
Эти две команды мне тоже подошли:

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

Но это не сработало:

git push --all google

Мне пришлось отредактировать файл ~/.ssh/config, чтобы он заработал. Это решило мою проблему. Я добавил:

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

Подробнее о файле ~/.ssh/config здесь

У меня та же проблема в Linux (Mint/Ubuntu), когда я пытался установить удаленный доступ к существующему репозиторию в Google Cloud Source Repos. Это то, что вы пытаетесь сделать. Однако это был пустой репозиторий git, сгенерированный Expo CLI Quickstart, в котором вообще не было файлов или исходной истории.

Вместо этого я клонировал существующий репозиторий в Google Cloud Source Repos на мой компьютер, добавил фиктивный файл, зафиксировал его и отправил. Это сработало для меня. Надеюсь, это работает для вас.

Открытьhttps://source.developers.google.com/new-passwordв браузере, войдите в систему и следуйте отображаемым инструкциям. Это сработало в моем случае.

В моем (крайне необычном) случае моя компания приняла Google Workspace. Это создало новую учетную запись Google Workspace с тем же именем, что и моя исходная учетная запись (), а затем изменило имя моей исходной учетной записи на .

Поскольку разрешения GCP были связаны с исходной учетной записью, теперь она называется[my name]%[company's domain].com@gtempaccount.com, я получил ошибку «Отказано в доступе». Удаленный URL-адрес, определенный в моей конфигурации git, использовал исходный адрес электронной почты (original@domain.com), теперь связанный с недавно созданной учетной записью Google Workspace, и у этой учетной записи нет разрешений на доступ к репозиторию Cloud Source.

Имея аналогичные проблемы, попробовали две вещи:

1 - предложение в этой теме

Выполнил gcloud init, создал и настроил ~/.ssh/config, но это не решило проблему.

2 - Затем попробовали это предложение, и оно сработало...

Как решить ошибку Permission denied (publickey) при использовании Git?

Добавьте файл с именемconfig(без расширения файла, т.е. без.txtрасширение) в каталоге OpenSSH (в Windows он должен находиться вC:\Users\myusername\.ssh) со следующим:

      Host source.developers.google.com
    HostName source.developers.google.com
    User myemail@mydomain.com
    IdentityFile ~/.ssh/my-private-key-file

этот :

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

должно быть так:

git удаленно добавить google https://source.developers.google.com/p/[PROJECT_NAME]/r/[REPO_NAME]

Другие вопросы по тегам