scp -r /Applications/XAMPP/htdocs/keypairfile.pem uploads ec2-user@publicdns:/var/www/html
where uploads is a directory returns Permission denied (publickey).
However
scp -i /Applications/XAMPP/htdocs/keypairfile.pem footer.php ec2-user@publicdns:/var/www/html
works (notice the flag change).
uploads is an empty folder
These are the file permissions for the uploads directory
drwxrwxrwx 3 geoffreysangston admin 102 Nov 15 01:40 uploads
These are the file permissions for /var/www/html
drwxr-x--- 2 ec2-user ec2-user 4096 Jan 5 20:45 html
I've tried changing html to 777 and that doesn't work either.
The
-i
flag specifies the private key (.pem file) to use. If you don't specify that flag (as in your first command) it will use your default ssh key (usually under~/.ssh/
).So in your first command, you are actually asking
scp
to upload the .pem file itself using your default ssh key. I don't think that is what you want.Try instead with:
Even if above solutions don't work, check permissions to destination file of aws ec2 instance. May be you can try with-
sudo chmod 777 -R destinationFolder/*
If you want to upload the file
/Applications/XAMPP/htdocs/keypairfile.pem
toec2-user@publicdns:/var/www/html
, you can simply do:Where:
-C
- Compress data-r
- Recursivetransferring file from local to remote host
scp -i (path of your key) (path for your file to be transferred) (username@ip):(path where file to be copied)
P.S. - ec2-user@someipAddress of this ip address should have access to the destination folder in my case /home/ec2-user/