我正尝试使用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
答案 0 :(得分:2)
显然,我的用户没有对主文件夹的写入权限!甚至chmod 777
也无济于事。我最终复制到/tmp
文件夹,然后从那里拿起它!
由于某些原因,ssh(基于Web)和scp使用了不同的用户。这就是为什么我的scp用户无法访问该文件夹的原因。它试图写入另一个用户的主文件夹。
答案 1 :(得分:0)
即使这篇文章看起来已经解决了,我也遇到了类似的问题:我可以通过SSH进入实例,但无法获得scp。原来我实例上的文件夹没有读/写权限,所以我无法复制(写)到该文件夹。
授予权限:
chmod 777 <folder-name>
将文件/文件夹复制到实例中的文件夹:
sudo gcloud compute scp <file-to-copy> <username>@<instance-name>:<folder-to-copy-to-which-requires-permissions> --zone <zone> --project <project-id>