Разрешение SCP отклонено (publickey). на EC2 только при использовании флага -r в каталогах
scp -r /Applications/XAMPP/htdocs/keypairfile.pem uploads [email protected]:/var/www/html
где uploads - это каталог, который возвращает Permission denied (publickey).
Однако
scp -i /Applications/XAMPP/htdocs/keypairfile.pem footer.php [email protected]:/var/www/html
работает (обратите внимание на изменение флага).
uploads - это пустая папка
Это разрешения файлов для каталога uploads
drwxrwxrwx 3 geoffreysangston admin 102 Nov 15 01:40 uploads
Это права на файл для /var/www/html
drwxr-x--- 2 ec2-user ec2-user 4096 Jan 5 20:45 html
Я попытался изменить html на 777, и это тоже не работает.
Ответы
Ответ 1
Флаг -i
указывает закрытый ключ (файл .pem) для использования. Если вы не укажете этот флаг (как в вашей первой команде), он будет использовать ваш ssh-ключ по умолчанию (обычно под ~/.ssh/
).
Итак, в вашей первой команде вы действительно запрашиваете scp
для загрузки самого файла .pem, используя ваш ssh-ключ по умолчанию. Я не думаю, что это то, что вы хотите.
Попробуйте вместо этого:
scp -r -i /Applications/XAMPP/htdocs/keypairfile.pem uploads/* [email protected]:/var/www/html/uploads
Ответ 2
перенос файла с локального на удаленный хост
scp -i (путь к вашему ключу) (путь для переноса вашего файла) (имя пользователя @ip):( путь, где должен быть скопирован файл)
e.g scp -i aws.pem /home/user1/Desktop/testFile [email protected]:/home/ec2-user/
P.S. - ec2-user @someipAddress этого ip-адреса должен иметь доступ к папке назначения в моем случае/home/ec2-user/
Ответ 3
Даже если вышеуказанные решения не работают, проверьте разрешения на файл назначения экземпляра aws ec2. Может быть, вы можете попробовать с sudo chmod 777 -R destinationFolder/*
Ответ 4
Если вы хотите загрузить файл /Applications/XAMPP/htdocs/keypairfile.pem
в [email protected]:/var/www/html
, вы можете просто сделать:
scp -Cr /Applications/XAMPP/htdocs/keypairfile.pem/uploads/ [email protected]:/var/www/html/
Где:
-
-C
- Сжатие данных
-
-r
- Рекурсивный