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
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:
(also suggested by Faizan in the comments) this solution will require two steps every time
use gcloud compute copy-files to transfer files/directories where your user can write to, e.g., /tmp
or /home/$USER
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
this solution is one step with some prior prep work:
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
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