从GCP VM执行git push时,Google Source Repository错误

问题描述

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

  1. 打开GCP VM,创建名为test_git的目录并运行git init

  2. 创建了几个文件文件夹。编辑了文件

  3. 一个git add <file>

  4. 一个git commit

  5. 转到Google Source Repository,创建一个空的存储库(名称与目录相同),然后在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. 输入要在其中保存密钥的文件(保留为空,然后按Enter作为默认值)。
  2. 键入一个安全密码短语(推荐),然后按Enter。
  3. 如果在步骤3中选择了 default ,请打开名为id_rsa.pub的文件,然后在Cloud Source Repository上注册SSH密钥时将整个文本粘贴到 Key 。对于键名,应该易于记忆,以备将来参考。

或者,您也可以按照此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