SCP权限被拒绝(公钥).仅在目录上使用-r标志时在EC2上

use*_*797 46 unix file-permissions scp amazon-ec2

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

其中uploads是目录返回权限被拒绝(publickey).

然而

scp -i /Applications/XAMPP/htdocs/keypairfile.pem footer.php ec2-user@publicdns:/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,但这也无效.

Dav*_*que 103

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

因此,在第一个命令中,您实际上是要求scp使用默认的ssh密钥上传.pem文件.我不认为这就是你想要的.

尝试改为:

scp -r -i /Applications/XAMPP/htdocs/keypairfile.pem uploads/* ec2-user@publicdns:/var/www/html/uploads
Run Code Online (Sandbox Code Playgroud)

  • 现在这给了我“scp:/var/www/html/uploads:权限被拒绝”,所以我想我已经有所进展。现在可能与文件权限有关,所以我会再处理一下它们。谢谢。不久前,我开始学习如何使用 UNIX / 控制台,并采取了跳跃式的方法。您认为这是解决此问题的最佳方法,还是这真的只是通过做交易来学习?谢谢。 (2认同)
  • 因为这是我遇到类似问题(在RPi上)时的最佳答案,所以我只添加了我用调试标志`vvv`来运行它,并注意到scp正在尝试`/root/.ssh/ id_rsa`并失败。我只是简单地添加了-i /home/pi/.ssh/id_rsa,以便它指向正确的用户密钥文件,并且可以正常工作。调试输出几乎总是有用的。 (2认同)

Vis*_*oot 18

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

  • 如果某人的 destinationFolder 是 home 怎么办?这不是允许回家的好方法 (3认同)

GKV*_*GKV 17

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

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

e.g scp -i aws.pem /home/user1/Desktop/testFile   ec2-user@someipAddress:/home/ec2-user/
Run Code Online (Sandbox Code Playgroud)

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