Назад | Перейти на главную страницу

Как передать файл SCP между двумя серверами Amazon EC2?

Я использую Amazon AWS, и в моей учетной записи есть два экземпляра EC2. Попытка отправить ключ RSA через SSH на другой экземпляр EC2 с использованием внутреннего частного IP. Но это не работает.

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

Что я делаю не так и как отправить файл в другую учетную запись EC2 с помощью ssh.

Вот формат scp:

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

Вам не хватает <what_to_copy> в примере.

Также проверьте группу безопасности целевого сервера. Он должен разрешать соединения либо с группой безопасности исходного сервера, либо с 10.0.0.0/8 сеть.

Это не заменит полностью файл authorized_keys, поэтому вы можете продолжить вход с предыдущим доступом:

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

где «ПОЛЬЗОВАТЕЛЬ» может быть «root», «ec2-user» или «ubuntu», в зависимости от используемого AMI.

Или просто запустите свои экземпляры EC2, используя в первую очередь свои личные ключи ssh. Вот статья, которую я написал об этом:

Загрузка личных ключей ssh ​​в Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys

Вероятно, вы используете 10.x.x.x-ip экземпляра. Это не сработает. Используйте внешний путь. (что-то вроде ec2-75-102-166-16.compute-1.amazonaws.com). Или прикрепите к нему эластичный IP-адрес и используйте его.

Я переместил свой ключ в ~/.ssh затем создал файл ~/.ssh/config(или добавлен к нему) с:

IdentityFile ~/.ssh/key.pem

Это позволит вам использовать ssh и scp без указания местоположения ключа.

Сегодня у меня была такая же проблема. Вот мой сценарий для ряда файлов:

 #!/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

Надеюсь, это поможет! :)