简体   繁体   中英

Uploading file to AWS from local machine

How to use scp command to upload file to aws server

  • I have .pem file in /Downloads in local machine
  • I am trying to copy file to /images folder in AWS server

    What command can i use ?

Thanks,

You can use plain scp :

scp -i ~/Downloads/file.pem local_image_file user@ec2_elastic_ip:/home/user/images/

You need to put an Elastic IP to the EC2 instance, open port 22 to your local machine IP in the EC2 instance security group, and use the right user (it can be ec2-user, admin or ubuntu (look at the AMI documentation)).

Diego's answer works.. However, if you're unaware of your elastic IP, then you can simply scp using following command (check the order of arguments)

scp -i path-to-your-identifier .pem file-to-be-copied ubuntu@public-IP:/ required-path

just for reference, here ubuntu is your AWS user and public-IP is somewhat like 54.2xx.xxx.xxx eg 54.200.100.100 or such (If order is messed up: filename before identifier, then you'll get a Permission denied (publickey).lost connection error)

Also, keep in mind the permissions of .pem file.. Should be 400 or 600. Not public to all. Hope it helps!

there are number of ways to achieve what you want

  1. use s3cmd http://s3tools.org/s3cmd

  2. or use cyberduck http://cyberduck.ch/

  3. or write a tool using amazon Java API

You can try kitten utility which is a wrapper around boto3. You can easily upload/download files and run commands on EC2 server or on multiple servers at once for that matter.

kitten put -i ~/.ssh/key.pem cat.jpg /tmp [SERVER NAME][SERVER IP]

Where server name is eg ubuntu or ec2-user etc.

This will upload cat.jpg file to /tmp directory of server

Another alternative way to scp is rsync .

Some of the benefits of rsync

The rsync cmd

rsync -ravze "ssh -i /home/your-user/your-key.pem "  --exclude '.env'  --exclude '.git/' /var/www/your-folder-to-upload/*  ubuntu@xx.xxx.xxx.xxx:/var/www/your-remote-folder

Now, in case you find this syntax a little bit verbose you can use aws-upload which does all the above but you just tabbing.

This is the correct way uploading from local to remote.

scp -i "zeus_aws.pem" ~/Downloads/retail_market_db-07-01-2021.sql ubuntu@ec2-3-108-200-27.us-east-2.compute.amazonaws.com:/var/www/

Could be a better approach

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM