Как скопировать файл из одного приложения rails в экземпляр aws ec2 - PullRequest
0 голосов
/ 15 марта 2012

Я хочу скопировать файл из одного приложения rails в удаленное / другое приложение, размещенное на экземпляре aws ec2.У меня есть группы безопасности TCP порты 21 и 21, открытые для ssh и sftp.Но я не могу придумать, как это сделать.Я пробовал scp до сих пор, и он не работает.

Я пробовал это:

scp -i ec2-keypair.pem myfile.txt ubuntu@my-public-ec2-ip:/home/ubuntu/my_new_file.txt

Это подсказывает это: Using /home/ubuntu/.rvm/gems/ruby-1.8.7-p334 и выход.Но передача файлов не происходит.В чем может быть возможная проблема?

А также, если вы знаете лучшее решение, чтобы сделать то же самое, пожалуйста, помогите мне с вашими знаниями.Спасибо

РЕДАКТИРОВАТЬ : Было бы здорово, если бы решение было доступно в ruby или ruby on rails.Потому что в конечном итоге мне нужно перенести файл из одного приложения rails в другое.

РЕДАКТИРОВАТЬ : Когда я делаю scp -v -i ~/.ec2/ec2-keypair.pem Gemfile.lock ubuntu@175.41.140.84:/home/ubuntu/apps/, я получаю это: http://pastie.org/3613259

и вижуздесь: http://pastie.org/3613269 для более подробного вывода с -vvv

1 Ответ

1 голос
/ 18 марта 2012

Итак, я нашел эту тему, и последний элемент может быть релевантным.http://centos.org/modules/newbb/viewtopic.php?topic_id=30515&forum=42

(кстати, ssh -vvv даст вам отладочный уровень 3 с еще более непостижимыми деталями).

Поэтому, безусловно, наиболее распространенная проблема заключается в том, что разрешения дляКаталог .ssh (как на локальном, так и на удаленном хостах) каким-то образом становится чрезмерно разрешающим, и ssh откажется использовать учетные данные.Пермь в каталоге .ssh должна быть rwx только для пользователя (восьмеричное chmod 700), rw для пользователя с закрытым ключом и парами ключей .pem, и group / all для чтения для других файлов.

drwx------  11 tharrison  staff   374 Mar  1 16:37 .
drwxr-xr-x+ 79 tharrison  staff  2686 Mar  8 10:43 ..
-rw-r--r--   1 tharrison  staff   128 Aug 16  2010 .ssh-agent
-rw-r--r--   1 tharrison  staff   132 Dec 29 14:42 config
-rw-------   1 tharrison  staff  1675 Apr 20  2009 id_rsa
-rw-r--r--@  1 tharrison  staff   405 Apr 20  2009 id_rsa.pub
-rw-r--r--   1 tharrison  staff  2805 Mar  5 08:33 known_hosts
-rw-------@  1 tharrison  staff  1693 Apr 27  2011 my-aws-keypair.pem

SSH (правильно) параноидален в отношении того, что он будет отправлять в любой журнал - он не хочет давать какие-либо подсказки о том, что работает или не работает, так как эти советы могут быть использованы для обнаруженияуязвимости и т. д. Таким образом, журналы могут быть полезны ... иногда.

Но я не уверен, что все это правильно, потому что я думаю, что вы сказали, что можете успешно войти в систему из командной строки, используяssh, и этот scp не работает - этот тип исключает проблемы аутентификации ssh (как я уже сказал, scp на самом деле просто ssh), поэтому стоит удостовериться, что пользователь, который входит в систему как удаленно, имеетразрешения на запись файла в папку, в которую вы его отправляете.

Возможно, попробуйте ssh -i mykeypair.pem myuser@myremote.host 'touch ~/foo' Все значения, начинающиеся с "my", должны быть заменены правильными значениями, например, mykeypair.pem должен иметь путьи имя пары ключей, которую вы используете для входа в систему. Если это работает, он создаст файл с именем foo в домашнем каталоге myuser на сервере myremote.host - войдите в систему, используя ssh без командыи проверьте - тогда у вас есть соответствующие разрешения, по крайней мере, для этого каталога.Теперь попробуйте настоящий каталог.

Если произойдет сбой, проверьте, что все каталоги в пути - это group-x или all-x, а целевой каталог - group или all rwx.

EDIT: исправлена ​​команда test sshи расширил процедуру и уточнил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...