Ответ 1
Попробуйте указать пользователя ec2-user
, например
scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
См. Подключение к экземплярам Linux/UNIX с использованием SSH.
Я пытаюсь использовать мой терминал для 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 без пароля но это не отвечает на мой вопрос.
Попробуйте указать пользователя ec2-user
, например
scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
См. Подключение к экземплярам Linux/UNIX с использованием SSH.
второй каталог - ваш целевой адрес, не используйте здесь имя сервера. Другими словами, вам не нужно указывать имя машины для машины, в которой вы сейчас находитесь.
scp -i /path/to/your/.pemkey -r /copy/from/path [email protected]:/copy/to/path
-r, если это каталог.
Ваш ключ не должен быть общедоступным для работы SSH. При необходимости используйте эту команду:
chmod 400 yourPublicKeyFile.pem
Вы должны быть на вашем локальном компьютере, чтобы попробовать выполнить команду scp.
На вашей локальной машине попробуйте:
scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
У меня была точно такая же проблема, мое решение заключалось в
scp -i /path/pem -r /path/file/ [email protected] aws dns name:
(оставьте здесь пробел)
после выполнения этой части, зайдите в ssh-сервер и mv файл в нужное место
Вот детали того, что работает для экземпляра EC2:
scp -i /path/to/whatever.pem /users/me/path-to-file [email protected]:~
Несколько заметок для начала:
-i
scp
обозначает протокол защищенного копирования. Знание слов облегчает запоминание команды.-i
требует, чтобы вы .pem
файл .pem
в качестве следующего параметра. Если нет -i
, то вам не нужен .pem
.:~
в конце пункта назначения для экземпляра EC2.scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile [email protected]:PATH OF SERVER/serverdirectory
Проверьте разрешения на файл .pem... openssh обычно не любит читаемые пользователем секретные ключи и не будет работать (iir, scp не делает большую работу по предоставлению этой обратной связи пользователю).
Можете ли вы просто ssh с этим ключом на ваш хост AWS?
Сначала вы должны изменить режим .pem
файла из режима чтения и записи в режим только для чтения. Это можно сделать только одной командой в терминале sudo chmod 400 your_public_key.pem
Я попробовал все упомянутые выше предложения, и ничего не получилось. Я прервал текущий экземпляр, запустил еще один и повторил тот же самый точный процесс. На этот раз проблем нет. Иногда это может быть удаленная ошибка ami.
Процесс использования SCP для копирования файлов с локальной машины на экземпляр AWS EC2 Linux рассматривается поэтапно (включая пункты, упомянутые ниже) в это видео.
Чтобы исправить эту проблему с помощью SCP:
Вам нужно указать правильного пользователя Linux. Из Amazon:
Ваш закрытый ключ не должен быть общедоступным. Выполните следующую команду, чтобы только пользователь root мог прочитать файл.
chmod 400 /path/to/yourKeyFile.pem
Ниже у меня работает формат 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
Я бы использовал:
scp -i "path to .pem file" "file to be copeide from local machine" [email protected]: 'destination folder to copy file on remote machine'