Передача файлов между двумя инстансами EC2 в одном регионе

У меня есть 2 экземпляра EC2 под управлением Ubuntu 14.04, и мне нужно выяснить, как передавать файлы с одного на другой. Я прочитал часто задаваемые вопросы от Amazon, и там говорится, что я могу сделать это без каких-либо дополнительных затрат, если я использую частный IP-адрес, но я не уверен, как передавать файлы с его помощью.

Прямо сейчас я использую для этого протокол scp -

scp -i ~/Path-To-Key-File/AAA.gem /path/file  ec2-user@<Elastic IP>:/path/file

Я попытался заменить эластичный IP-адрес частным IP-адресом, но это не сработало. Я делаю что-то не так здесь?


person ksb    schedule 20.08.2014    source источник


Ответы (5)


На самом деле, я разобрался... Мне просто нужно было заменить эластичный IP-адрес на частный IP-адрес и правильно настроить группы безопасности, чтобы экземпляры могли обмениваться данными!

Перенос с машины А на машину Б

Я запускаю этот код на машине A

scp -i ~/Path-To-Key-File/AAA.pem /path/file  ec2-user@<Private IP of Machine B>:/path/file

Для групп безопасности мне пришлось разрешить протокол SSH по частному IP-адресу (от машины B)!!

person ksb    schedule 20.08.2014
comment
он запрашивает парольную фразу для ключа, я знаю это, но мне нужен один вкладыш, как я могу это решить? - person Diego; 31.01.2018
comment
@KshitizShankar Мне отказывают в доступе, я применил ту же группу безопасности, а также использую частный IP-адрес, вы можете мне помочь с этим? - person Rohit Khatri; 03.04.2018
comment
не могли бы вы объяснить, как на самом деле настроить группы безопасности? Без этого объяснения ответ не слишком полезен... - person Ben Muller; 25.11.2019
comment
@BenMuller Перейдите в профиль группы безопасности вашего экземпляра ec2. Нажмите «Изменить правила для входящих подключений». Выберите «ssh» из выпадающего списка. Затем в поле «Источник» введите имя своей группы безопасности и щелкните всплывающее окно автозаполнения. Это должно разрешить передачу между всеми экземплярами ec2 в этой группе безопасности - это было для меня! - person Hillary Sanders; 03.03.2020

Предполагая, что оба ваших экземпляра являются экземплярами Linux EC2.

предположим, вы хотите передать файл из второго экземпляра (ec2-2) в первый экземпляр (ec2-1), команда должна быть запущена в ec2-1:

scp -i  /Path-To-Key-File-for-ec2-2/key.pem  ec2-user@Elastic-IP-of-ec2-2:/path/filename your/local-path-on-ec2-1/filename

Соответствующее обсуждение вы можете найти здесь

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

person Tapaswi Panda    schedule 20.08.2014
comment
На самом деле мне нужно иметь возможность передавать файлы с ec2-2 на ec2-1, запустив код на ec2-2 - person ksb; 20.08.2014
comment
Хорошо, чтобы отправить файлы из вашего экземпляра ec2-2 в ec2-1, находящийся на ec2-2, команда будет выглядеть так: scp -i /Path-To-Key-File-for-ec2-1/key.pem your/local -path-on-ec2-2/filename ec2-user@Elastic-IP-of-ec2-1:/path-on-ec2-1/filename - person Tapaswi Panda; 20.08.2014
comment
извините, я отредактировал комментарий, но он не обновился. Моя проблема была не в копировании файлов, а в использовании эластичного IP-адреса и доплате за передачу данных по сравнению с использованием частного IP-адреса и выполнением этого бесплатно. - person ksb; 20.08.2014
comment
Правильно, вы можете использовать частный IP вместо EIP. Но вам нужно разрешить ssh для этих IP-адресов через группу безопасности соответствующих экземпляров. - person Tapaswi Panda; 20.08.2014
comment
что, если оба экземпляра находятся в разных учетных записях aws? Я хочу скопировать из рабочего пространства Jenkins в другой каталог ec2. Можно ли использовать ссм? - person DJ_Stuffy_K; 12.03.2021

Этот вопрос задается об аутентификации с помощью файла .pem. Но доступ без авторизации может быть полезен в некоторых случаях. Вместо этого вы авторизуете другую машину.

Скажем, вам нравится ssh или scp с машины-1 на машину-2.

В машине-1.

  • Проверьте, есть ли файл открытого ключа (id_rsa.pub) в USER_HOME/.ssh/. Если нет, сгенерируйте его с помощью команды ssh-keygen -t rsa.

В машине-2

  • Раскомментируйте PubkeyAuthentication yes в /etc/ssh/sshd_config.
  • Откройте файл USER_HOME/.ssh/authorized_keys и добавьте содержимое файла id_rsa.pub с машины-1.

Теперь вы можете скопировать его с помощью scp следующим образом:

scp /file/to/copy username_machine1@ip_machine1:/destination/path

Вы сделали. Наслаждаться!!!

Для получения подробной информации см. здесь.

person misbah    schedule 13.08.2020
comment
что, если оба экземпляра находятся в разных учетных записях aws? - person DJ_Stuffy_K; 12.03.2021

scp -i /home/centos/b1.pem centos@ip:/etc/httpd/conf/httpd.conf httpd.conf.j2

person Charan S O Vijay    schedule 03.05.2018
comment
Добро пожаловать в Stack Overflow! Хотя этот фрагмент кода может решить вопрос, включение объяснения действительно помогает улучшить качество вашего поста. Помните, что вы отвечаете на вопрос для будущих читателей, и эти люди могут не знать причин вашего предложения кода. Также старайтесь не перегружать свой код пояснительными комментариями, это снижает читабельность как кода, так и пояснений! - person Filnor; 05.05.2018

Скопируйте данные с локального на ec2 и с одного ec2 на другой (если вы являетесь внутренним источником ec2)

scp -ri <key file path> <copy data file location> <Public DNS (IPv4)>:~/ 

Example:-
scp -ri practical.pem serverdata1.tar
[email protected]:~/
person Ankit Kumar Rajpoot    schedule 20.11.2019