SCP Permission denied (publickey). on EC2 only when using -r flag on directories

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.

168376 次浏览

如果你想上传文件 /Applications/XAMPP/htdocs/keypairfile.pemec2-user@publicdns:/var/www/html,你可以简单地做:

scp -Cr /Applications/XAMPP/htdocs/keypairfile.pem/uploads/ ec2-user@publicdns:/var/www/html/

地点:

  • 压缩数据
  • -r-递归

-i标志指定私钥(。Pem 文件)。如果您没有指定该标志(如在第一个命令中) ,它将使用默认的 ssh 键(通常在 ~/.ssh/下)。

因此,在第一个命令中,实际上是要求 scp上载。使用默认 ssh 键的 pem 文件本身。我觉得这不是你想要的。

试着用:

scp -r -i /Applications/XAMPP/htdocs/keypairfile.pem uploads/* ec2-user@publicdns:/var/www/html/uploads

将文件从本地传输到远程主机

Scp-i (密钥路径)(传输文件的路径)(username@ip) : (复制文件的路径)

e.g scp -i aws.pem /home/user1/Desktop/testFile   ec2-user@someipAddress:/home/ec2-user/

P.S.-ec2-user@somipAddress 的这个 ip 地址应该可以访问我的 case/home/ec2-user/中的目标文件夹

即使上述解决方案不起作用,检查 awsec2实例的目标文件的权限。也许你可以试试用 -sudo chmod 777 -R destinationFolder/*

对新手(比如我)的回答:

当我在服务器上试图复制文件时,出现了这个错误。

所以我的答案是: 出口,或者打开另一个终端