Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I am on Amazon AWS and I have two EC2 instance on my account. Trying to send rsa key via SSH to another EC2 instance using internal private IP. But its not working.

scp -i .ssh/id_rsa.pub xxx.xxx.xxx.xxx:/root/.ssh/authorized_keys2

What am I doing wrong and how do I send file to another EC2 account with ssh.

share|improve this question

5 Answers 5

Here the scp format:

scp -i <key> <what_to_copy> <where_to_copy>

You are missing <what_to_copy> in the example.

Also check the security group of the target server. It should allow the connections either the the security group of the source sever or from the 10.0.0.0/8 network.

share|improve this answer
    
I guess im clueless with SCP. How do I locate the <key> ? Is this from my local machine? I am reciveing "Identity file key.pem not accessible" –  Maca Dec 2 '11 at 10:14
    
Technically, it is the 3rd argument that is missing; the source can be a remote path. –  Falcon Momot Oct 23 '12 at 5:39
    
i forgot to add security groups, your answer helped. thanks –  ufk Mar 4 at 10:45

This won't completely replace the authorized_keys file, so you can continue logging in with previous access:

cat .ssh/id_rsa.pub | ssh -i key.pem USER@x.x.x.x 'cat >>.ssh/authorized_keys'

where "USER" might be "root", "ec2-user", or "ubuntu", depending on the AMI you are running.

Or, just start your EC2 instances using your personal ssh keys in the first place. Here's an article I wrote about that:

Uploading Personal ssh Keys to Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys

share|improve this answer

I've moved my key to ~/.ssh then created the file ~/.ssh/config(or appended to it) with:

IdentityFile ~/.ssh/key.pem

This will let you ssh and scp without ever specifying the key location.

share|improve this answer

I had this same issue today. Here is my script for a number of files:

 #!/bin/bash

files=(

/var/www/test1.txt

/var/www/test2.txt

)

from="XXX"

to="YYY"

for i in "${files[@]}"

do

  scp -3 -i ~/.ssh/AAA.pem ubuntu@$from:$i ubuntu@$to:$i

done

I hope this helps! :)

share|improve this answer

You are probably using the 10.x.x.x-ip of the instance. This won't work. Use the external path. (something like ec2-75-102-166-16.compute-1.amazonaws.com). Or attach an elastic IP to it and use that.

share|improve this answer
    
I tried using the elastic IP then SCP but I received: Permission denied (publickey). lost connection –  Maca Dec 2 '11 at 7:26
    
you're trying to add the pubkey to authorized_keys by logging in with the same key pair? :) just cat id_rsa.pub on the source server and paste into the target server's authorized_keys by hand. –  lunixbochs Dec 2 '11 at 7:55
    
I think I got the right command but i get permission err. /root/.ssh/id_rsa.pub: Permission denied . Im logged in as ec2-user. –  Maca Dec 3 '11 at 9:44

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.