首页 文章

在两个Google Cloud实例之间复制文件

提问于
浏览
7

我在Google Cloud中有两个项目,我需要将文件从一个项目中的实例复制到另一个项目中的实例 . 我试图使用'gcloud compute copy-files'命令但是我收到此错误:

gcloud compute copy-files test.tgz --project stack-complete-343 instance-IP:/home/ubuntu --zone us-central1-a 

ERROR: (gcloud.compute.copy-files) Could not fetch instance: - Insufficient Permission

3 回答

  • 1

    我能够用一个全新的VM实例复制你的问题,得到同样的错误 . 以下是我为解决问题而采取的几个步骤:

    确保您已通过身份验证,并拥有同一帐户的两个项目的权限!

    $ gcloud config list (如果您看到服务帐户@ developer.gserviceaccount.com,则需要切换到两个项目上启用的帐户 . 您可以从Devlopers控制台>权限检查)

    $ gcloud auth login (将链接复制到新窗口,登录,复制代码并在提示中将其粘贴回来)

    $ gcloud compute copy-files test.tgz --project stack-complete-343 instance-IP:/home/ubuntu --zone us-central1-a (我也会使用实例名而不是IP)

    最后一个命令也应该生成你的ssh密钥 . 您应该看到类似的内容,但不要担心输入密码:

    警告:将执行[/ usr / bin / ssh-keygen]以生成密钥 .

    生成公钥/私钥rsa密钥对

    输入密码(无密码短语为空):

  • 9

    转到远程实例上的权限选项卡(即,您将不会运行的实例 gcloud compute copy-files ) . 然后转到服务帐户并创建一个新帐户,为其命名并选中该框以获取该密钥文件并选择 JSON . 使用 gcloud compute copy-files 将您的个人计算机上的密钥文件和您的个人帐户上传到本地实例(即您正在进入SSH并运行 gcloud compute copy-files 命令的计算机 . )然后通过SSH从本地实例运行此命令 . gcloud auth activate-service-account ACCOUNT --key-file KEY-FILE 使用生成的地址等电子邮件替换 ACCOUNT ,并使用您之前从个人计算机上传的密钥文件的路径 KEY-FILE . 然后,您应该能够访问设置帐户的实例 . 必须在要在其间复制文件的每个实例上重复这些步骤 . 如果这些说明不是't clear let me know and I',请尽力帮忙 .

  • 0

    建议不要在Compute Engine实例上验证您的帐户,因为这会将您的凭据公开给任何有权访问该计算机的人 .

    相反,您可以让您的服务帐户使用Compute Engine API . 首先,停止实例 . 停止后,您可以从控制台编辑 Cloud API access scopes . 将 Compute Engine 范围从 Disabled 修改为 Read Only .

    您现在应该只能使用 copy-files 命令 . 这样,您的服务帐户就可以访问Compute Engine API .

相关问题