scp (secure copy) to ec2 instance without password

Amazon Web-ServicesAmazon Ec2SshScpPem

Amazon Web-Services Problem Overview


I have an EC2 instance running (FreeBSD 9 AMI ami-8cce3fe5), and I can ssh into it using my amazon-created key file without password prompt, no problem.

However, when I want to copy a file to the instance using scp I am asked to enter a password:

scp somefile.txt -i mykey.pem root@my.ec2.id.amazonaws.com:/

Password:

Any ideas why this is happening/how it can be prevented?

Amazon Web-Services Solutions


Solution 1 - Amazon Web-Services

I figured it out. I had the arguments in the wrong order. This works:

scp -i mykey.pem somefile.txt root@my.ec2.id.amazonaws.com:/

Solution 2 - Amazon Web-Services

scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path

Solution 3 - Amazon Web-Services

copy a file from a local server to a remote server

sudo scp -i my-pem-file.pem ./source/test.txt ec2-user@1.2.3.4:~/destination/

copy a file from a remote server to a local machine

sudo scp -i my-pem-file.pem ec2-user@1.2.3.4:~/source/of/remote/test.txt ./where/to/put

So the basically syntax is:-

scp -i my-pem-file.pem username@source:/location/to/file username@destination:/where/to/put

-i is for the identity_file

Solution 4 - Amazon Web-Services

I've used below command to copy from local linux Centos 7 to AWS EC2.

scp -i user_key.pem file.txt ec2-user@my.ec2.id.amazonaws.com:/home/ec2-user

Solution 5 - Amazon Web-Services

Making siliconerockstar's comment an answer since it worked for me

scp -i kp1.pem ./file.txt ec2-user@1.2.3.4:/home/ec2-user

Solution 6 - Amazon Web-Services

scp -i ~/.ssh/key.pem ec2-user@ip:/home/ec2-user/file-to-copy.txt .

The file name shouldnt be between the pem file and the ec2-user string - that doesnt work. This also allows you to reserve the name of the copied file.

Solution 7 - Amazon Web-Services

lets assume that your pem file and somefile.txt you want to send is in Downloads folder

scp -i ~/Downloads/mykey.pem ~/Downloads/somefile.txt root@my.ec2.id.amazonaws.com:~/

let me know if it doesn't work

Solution 8 - Amazon Web-Services

scp -i /home/barkat/Downloads/LamppServer.pem lampp_x64_12.04.tar.gz

this will be very helpful to all of you guys

Solution 9 - Amazon Web-Services

My hadoopec2cluster.pem file was the only one in the directory on my local mac, couldn't scp it to aws using scp -i hadoopec2cluster.pem hadoopec2cluster.pem ubuntu@serverip:~.

Copied hadoopec2cluster.pem to hadoopec2cluster_2.pem and then scp -i hadoopec2cluster.pem hadoopec2cluster_2.pem ubuntu@serverip:~. Voila!

Solution 10 - Amazon Web-Services

I was hung up on this because I was specifying my public key file in

scp -i [private key file path]

When I caught that mistake and changed it to the private key path instead, I was all set.

Solution 11 - Amazon Web-Services

In your case, the user root won't have any issues. But in certain cases where you're required to login under SSH as a different user, make sure the directory you're scp-ing has adequate permissions for the user you're SSH-ing.

Solution 12 - Amazon Web-Services

To use PSCP, you need the private key you generated in Converting Your Private Key Using PuTTYgen. You also need the public DNS address of your Linux instance

pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt ec2-user@public_dns:/home/ec2-user/Sample_file.txt

Solution 13 - Amazon Web-Services

write this code

scp -r -o "ForwardAgent=yes" /Users/pengge/11.vim root@192.168.2.228:/root/

If you have a SSH key with access to the destination server and the source server does not, adding -o "ForwardAgent=yes" will allow you to forward your SSH agent to the source server so that it can use your SSH key to connect to the destination server.

Solution 14 - Amazon Web-Services

For ec2 server

#move your key to /tmp or right folder on server

Assign right permission

sudo chmod 600 /tmp/dev-sunrobotics-snippetbucketcom.pem

Than connect to server or transfer

scp -i /tmp/dev-snippetbucketcom.pem filestore.tar.gz [email protected]:/tmp

Make sure in your ip security you have allow ip address to connect

Solution 15 - Amazon Web-Services

Just tested:

Run the following command:

sudo shred -u /etc/ssh/*_key /etc/ssh/*_key.pub

Then:

  1. create ami (image of the ec2).
  2. launch from new ami(image) from step no 2 chose new keys.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionHoffView Question on Stackoverflow
Solution 1 - Amazon Web-ServicesHoffView Answer on Stackoverflow
Solution 2 - Amazon Web-ServicesSyed PriomView Answer on Stackoverflow
Solution 3 - Amazon Web-ServicesJamil NoydaView Answer on Stackoverflow
Solution 4 - Amazon Web-ServicesRenato CoutinhoView Answer on Stackoverflow
Solution 5 - Amazon Web-Servicesjoseph.hainlineView Answer on Stackoverflow
Solution 6 - Amazon Web-ServicesDeleView Answer on Stackoverflow
Solution 7 - Amazon Web-ServicesYatender SinghView Answer on Stackoverflow
Solution 8 - Amazon Web-ServicesBarkatView Answer on Stackoverflow
Solution 9 - Amazon Web-Servicesfall14123View Answer on Stackoverflow
Solution 10 - Amazon Web-ServicesBuvinJView Answer on Stackoverflow
Solution 11 - Amazon Web-ServicesShawnView Answer on Stackoverflow
Solution 12 - Amazon Web-Servicesdheeraj kumarView Answer on Stackoverflow
Solution 13 - Amazon Web-Services庄景鹏View Answer on Stackoverflow
Solution 14 - Amazon Web-ServicesTejas TankView Answer on Stackoverflow
Solution 15 - Amazon Web-Servicesamar essaView Answer on Stackoverflow