Получить разрешение (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]