Google 从 GCP VM 执行 git 推送时出现源存储库错误

Google Source Repository error when doing git push from GCP VM

我正在尝试将虚拟存储库上传到 Google 源存储库。我这样做是为了学习如何使用它。我做的步骤是:

  1. 打开一个 GCP VM,创建了一个名为 test_git 和 运行 git init

    的目录
  2. 创建了几个文件和文件夹。编辑了文件。

  3. 做了一个git add <file>

  4. 做了一个git commit

  5. 转到 Google 源存储库,创建一个空存储库(与目录同名),然后在 VM 上执行

    git remote add google ssh://<my@email.com>@source.developers.google.com/p/<PROJECTID>/r/test_git

此命令在“Push code from local git repository”下的源存储库中找到

  1. 做过git push --all google

当我这样做时,我收到一条错误消息 Permission denied (publickey). fatal: Could not read from remote repository

老实说我不明白,因为大约 40 分钟前我为一些实际代码(只有一个 python 文件)做了一个 git push,它确实有效(也许是因为天使允许它).现在我遵循了一些指南,阅读了有关如何使用 git 和所有内容的信息,但我仍然坚持这一点,但我不明白为什么。我还设置了一个 SSH 密钥(用 PuTTY 生成)并注册了它,但它没有用。我做错了什么?

当我没有在 CSR 上配置 SSH 密钥时,我能够复制您的问题。 Here's a post 与您的问题有关,我建议您仔细检查您的托管 SSH 密钥。

如果来自 PuTTY 的 SSH 密钥不起作用,那么您可以尝试使用终端生成一个新的 SSH 密钥(如果您使用 Windows,请使用 Git Bash) :

  1. 打开终端。
  2. 在下方粘贴文字:
  ssh-keygen -t rsa -C "your_email@example.com"
  1. 输入一个保存密钥的文件(为默认值留空并按回车键)。
  2. 输入安全密码(推荐)然后按回车键。
  3. 如果在步骤 3 中选择了 default,打开名为 id_rsa.pub 的文件并将整个文本粘贴到 Key在 Cloud Source Repository 上注册 SSH 密钥。对于Key Name,应该是你容易记住的,方便以后参考。

或者作为替代方案,您可以按照此 documentation 通过 HTTPS 连接,而不是 SSH 和 运行 一个凭据帮助程序脚本,因此您无需配置 SSH 密钥:

Windows:

git config --global credential.https://source.developers.google.com.helper gcloud.cmd

Linux 或 MacOS:

git config --global credential.'https://source.developers.google.com'.helper gcloud.sh

如果您想更深入地了解凭据助手,请点击此处 reference

可以帮助您解决问题的另一件事是通过 运行 执行以下命令来检查您的 Git 配置:

git config --list