Я использую 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
Надеюсь, это поможет! :)