`gcloud compute copy-files`: permission denied when copying files

前端 未结 7 1951
滥情空心
滥情空心 2020-12-04 22:24

I\'m having a hard time copying files over to my Google Compute Engine. I am using an Ubuntu server on Google Compute Engine.

I\'m doing this from my OS X terminal a

7条回答
  •  离开以前
    2020-12-04 22:38

    The reason this doesn't work is that your username does not have permissions on the GCE VM instance and so cannot write to /var/www/html/.

    Note that since this question is about Google Compute Engine VMs, you cannot SSH directly to a VM as root, nor can you copy files directly as root, for the same reason: gcloud compute copy-files uses scp which relies on ssh for authentication.

    Possible solutions:

    1. (also suggested by Faizan in the comments) this solution will require two steps every time

      1. use gcloud compute copy-files to transfer files/directories where your user can write to, e.g., /tmp or /home/$USER

      2. login to the GCE VM via gcloud compute ssh or via the SSH button on the console and copy using sudo to get proper permissions:

        # note: sample command; adjust paths appropriately

        sudo cp -r $HOME/html/* /var/www/html

    2. this solution is one step with some prior prep work:

      1. one-time setup: give your username write access to /var/www/html directly; this can be done in several ways; here's one approach:

        # make the HTML directory owned by current user, recursively

        sudo chown -R $USER /var/www/html

      2. now you can run the copy in one step:

        gcloud compute copy-files /Users/Bryan/Documents/Websites/gce/index.php example-instance:/var/www/html --zone us-central1-a

提交回复
热议问题