无法将文件 scp 到 gcloud:权限被拒绝(公钥)

Cannot scp a file into gcloud: Permission denied (publickey)

我正在尝试使用 gcloud 将文件复制到计算实例中,如下所示:

gcloud compute scp ./file.txt.bz2 root@instance-1:/home/mehran/

我遇到了一个错误:

No zone specified. Using zone [us-central1-c] for instance: [instance-1].
root@###.###.###.###: Permission denied (publickey).
lost connection
ERROR: (gcloud.compute.scp) [/usr/bin/scp] exited with return code [1].

我也在没有root的情况下测试过:

gcloud compute scp ./file.txt.bz2 instance-1:/home/mehran/

并面临同样的错误。这是在我 可以 ssh 进入同一个实例而没有任何问题的情况下:

gcloud compute ssh instance-1

显然,我的用户没有主文件夹的写入权限!即使 chmod 777 也无济于事。我最终复制到 /tmp 文件夹,然后从那里拿起它!

出于某种原因,ssh(基于网络)和 scp 使用不同的用户。这就是为什么我的 scp 用户无权访问该文件夹的原因。它正在尝试写入另一个用户的主文件夹。

尽管这个 post 似乎已解决,但我遇到了类似的问题:我可以通过 SSH 进入实例但无法 scp。原来我的实例上的文件夹没有 read/write 权限,所以我无法复制(写入)到该文件夹​​中。

授予权限:

chmod 777 <folder-name>

复制file/folder到实例文件夹:

sudo gcloud compute scp <file-to-copy> <username>@<instance-name>:<folder-to-copy-to-which-requires-permissions> --zone <zone> --project <project-id>