如何以超级用户身份将文件从 google cloud shell 环境复制到虚拟机?

Posted

技术标签:

【中文标题】如何以超级用户身份将文件从 google cloud shell 环境复制到虚拟机?【英文标题】:How to copy files from the google cloud shell environment to a virtual machine as a super user? 【发布时间】:2020-02-15 20:53:29 【问题描述】:

无法以超级用户身份将文件从 Cloud Shell 复制到虚拟机。

以下代码适用于我,但我无法使用它将文件复制到 LAMP 堆栈中的受保护目录(即 /opt/bitnami/apache2/htdocs)。

gcloud compute scp --project "[MY PROJECT ID]" ~/file.php lampstack-vm:~/file.php

如果我尝试使用:gcloud compute scp --project "[MY PROJECT ID]" ~/file.php lampstack-vm:~/opt/bitnami/apache2/htdocs/file.php,我会收到以下错误:

权限被拒绝(公钥)。失去连接错误: (gcloud.compute.scp) [/usr/bin/scp] 退出并返回代码 [1]。

【问题讨论】:

Bitnami 工程师在这里。您还需要指定连接到远程实例时要使用的用户。执行命令时可以尝试使用bitnami@lampstack-vm:~/file.php 吗?有一个类似的帖子here 感谢您的意见。我找到了解决方案。我必须首先使用 chown 在 VM 实例中授予我的用户名权限。然后,正如您所指出的,使用我的用户名@ 复制到实例中。 【参考方案1】:

将文件从 Google Cloud Shell 复制到 VM 的步骤

第 1 步:在您的虚拟机目录中使用 chown 授予您的 Google 用户名权限:

sudo chown -R [Your Google Cloud Username] [Directory for Permission]

示例:sudo chown -R myusername /opt/bitnami/apache2/htdocs

第 2 步:使用以下参数执行 gcloud compute scp 命令:

'''gcloud compute scp --project "PROJECT NAME" [Cloud Shell 中的原始位置] [您的 Google Cloud 用户名]@[接收文件的 VM 实例名称]:[目录和文件名]'''

例如:gcloud compute scp --project "myprojectname" ~/colors.php myusername@myvm-instance: /opt/bitnami/apache2/htdocs/colors.php

【讨论】:

嗨,Alfredo,在实例中为您的用户名授予写入权限是解决方案之一,但我不建议您这样做。它可以破坏应用程序(这不是你的情况),这就是为什么我建议使用bitnami@your-vm,因为bitnami 用户在安装中有写权限。 好的,乔塔。我很感激跟进。将更改和使用 bitnami。

以上是关于如何以超级用户身份将文件从 google cloud shell 环境复制到虚拟机?的主要内容,如果未能解决你的问题,请参考以下文章

如何将我的数据从 Firestore 转换为身份验证用户

如何使用 spring security 和 spring boot 对 Google 用户进行身份验证,将 mongoDB 作为存储库?

系统中多种隐藏超级用户添加方法第1/2页

Django-nonrel 无法以超级用户身份登录到 localhost 管理站点

如何使用 OAuth2 身份验证保护私有数据?

如何以 root 身份运行 Google Chrome? [关闭]