Google 云 scp 权限被拒绝

Google cloud scp permission denied

我正在尝试通过安全复制 (scp) 将文件传输到我的 Google 云托管 Linux (Debian) 实例。我完全按照文档中的说明从本地机器连接到实例。 https://cloud.google.com/compute/docs/instances/connecting-to-instance

我可以通过以下方式成功登录:

ssh -i ~/.ssh/my-keygen [USERNAME]@[IP]

但是当我想将文件复制到实例时,我收到一条消息 "permission denied"。

scp -r -i ~/.ssh/my-keygen /path/to/directory/ [USERNAME]@[IP]:/var/www/html/

看来我登录的用户没有写入文件的权限,所以我已经尝试更改/var/www/的文件权限,但是仍然显示权限被拒绝的消息。

我也试过将用户添加到根组,但仍然出现同样的问题。

usermod -G root myuser

命令行应该是

scp -r -i ~/.ssh/my-keygen /path/to/directory/ [USERNAME]@[IP]:/var/www/html/

假设您的文件在本地 /path/to/directory//var/www/html/ 在远程服务器上。

权限不允许写入 /var/www/html/。写入 /tmp/ 应该可以。然后,您可以将具有 sudo 的文件复制到具有 root 权限的所需目标。

如果 SSH 无法正常工作,请在本地安装 gcloud CLI 和 运行 以下内容:gcloud compute scp --recurse /path/to/directory [IP] --tunnel-through-iap。这会将目录转储到您的 /home/[USERNAME]/ 文件夹中。然后登录控制台,使用sudo将目录移动到/var/www/html/.

有关文档,请参阅 https://cloud.google.com/sdk/gcloud/reference/compute/scp