С помощью scp скопировать файл в экземпляр Amazon EC2?

Я пытаюсь использовать мой терминал для Mac, чтобы загрузить файл из загрузок (phpMyAdmin, который я загрузил онлайн) в мой экземпляр Amazon EC2.

Используемая мной команда:

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz  [email protected]:~/.

Ошибка, которую я получил: Предупреждение: файл идентификации myAmazonKey.pem не доступен: нет такого файла или каталога. Разрешение отклонено (publickey). потерянное соединение

Оба моих myAmazonkey.pem и phpMyAdmin-3.4.5-all-languages.tar.gz находятся в разделе "Загрузка", поэтому я попробовал

scp -i /Users/Hello_Kitty22/Downloads/myAmazonKey.pem /Users/Hello_Kitty22/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  [email protected]:~/.

и полученная ошибка: Предупреждение: файл удостоверения /User/Hello _Kitty22/Downloads/myAmazonkey.pem не доступен: нет такого файла или каталога. Разрешение отклонено (publickey). потерянное соединение

Кто-нибудь может рассказать мне, как исправить мою проблему?

p.s. есть аналогичная статья: scp (безопасная копия) для экземпляра ec2 без пароля но это не отвечает на мой вопрос.

Ответ 2

второй каталог - ваш целевой адрес, не используйте здесь имя сервера. Другими словами, вам не нужно указывать имя машины для машины, в которой вы сейчас находитесь.

scp -i /path/to/your/.pemkey -r /copy/from/path [email protected]:/copy/to/path

-r, если это каталог.

Ответ 3

Ваш ключ не должен быть общедоступным для работы SSH. При необходимости используйте эту команду:

chmod 400 yourPublicKeyFile.pem

Ответ 4

Вы должны быть на вашем локальном компьютере, чтобы попробовать выполнить команду scp.

На вашей локальной машине попробуйте:

scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  [email protected]:~/.

Ответ 5

У меня была точно такая же проблема, мое решение заключалось в

scp -i /path/pem -r /path/file/ [email protected] aws dns name: (оставьте здесь пробел)

после выполнения этой части, зайдите в ssh-сервер и mv файл в нужное место

Ответ 6

Вот детали того, что работает для экземпляра EC2:

scp -i /path/to/whatever.pem /users/me/path-to-file [email protected]:~

Несколько заметок для начала:

  1. Обратите внимание на пробелы между тремя параметрами, указанными после -i
  2. scp обозначает протокол защищенного копирования. Знание слов облегчает запоминание команды.
  3. -i требует, чтобы вы .pem файл .pem в качестве следующего параметра. Если нет -i, то вам не нужен .pem.
  4. Обратите внимание :~ в конце пункта назначения для экземпляра EC2.

Ответ 7

scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile [email protected]:PATH OF SERVER/serverdirectory

Ответ 8

Проверьте разрешения на файл .pem... openssh обычно не любит читаемые пользователем секретные ключи и не будет работать (iir, scp не делает большую работу по предоставлению этой обратной связи пользователю).

Можете ли вы просто ssh с этим ключом на ваш хост AWS?

Ответ 9

Сначала вы должны изменить режим .pem файла из режима чтения и записи в режим только для чтения. Это можно сделать только одной командой в терминале sudo chmod 400 your_public_key.pem

Ответ 10

Я попробовал все упомянутые выше предложения, и ничего не получилось. Я прервал текущий экземпляр, запустил еще один и повторил тот же самый точный процесс. На этот раз проблем нет. Иногда это может быть удаленная ошибка ami.

Ответ 11

Процесс использования SCP для копирования файлов с локальной машины на экземпляр AWS EC2 Linux рассматривается поэтапно (включая пункты, упомянутые ниже) в это видео.

Чтобы исправить эту проблему с помощью SCP:

  • Вам нужно указать правильного пользователя Linux. Из Amazon:

    • Для Amazon Linux имя пользователя - ec2-пользователь.
    • Для RHEL имя пользователя - ec2-пользователь или root.
    • Для Ubuntu имя пользователя ubuntu или root.
    • Для Centos имя пользователя - centos.
    • Для Fedora имя пользователя - ec2-пользователь.
    • Для SUSE имя пользователя - ec2-пользователь или root.
    • В противном случае, если ec2-пользователь и root не работают, обратитесь к поставщику AMI.
  • Ваш закрытый ключ не должен быть общедоступным. Выполните следующую команду, чтобы только пользователь root мог прочитать файл.

    chmod 400 /path/to/yourKeyFile.pem
    

Ответ 12

Ниже у меня работает формат SCP

scp -i /path/my-key-pair.pem [email protected]:~/SampleFile.txt ~/SampleFile2.txt

SampleFile.txt: это будет путь от вашего корневого каталога (в моем случае /home/ubuntu). в моем случае файл, который я хотел скачать, был в /var/www

SampleFile2.txt: Это будет путь к корневому пути вашей машины (в моем случае /home/MyPCUserName)

Итак, я должен написать ниже команду

scp -i /path/my-key-pair.pem [email protected]:~/../../var/www/Filename.zip ~/Downloads

Ответ 13

Я бы использовал:

scp -i "path to .pem file" "file to be copeide from local machine" [email protected]: 'destination folder to copy file on remote machine'