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

Unix SCP权限被拒绝(公钥)。仅当在目录上使用-r标志时,在EC2上,unix,amazon-ec2,file-permissions,scp,Unix,Amazon Ec2,File Permissions,Scp,scp-r/Applications/XAMPP/htdocs/keypairfile.pem上传ec2-user@publicdns:/var/www/html 其中uploads是一个目录,返回被拒绝的权限(publickey) 然而 scp-i/Applications/XAMPP/htdocs/keypairfile.pem footer.php ec2-user@publicdns:/var/www/html 工作(注意标志的变化)。 上载是一个空文件夹 这些是上载目录的文件权限 DR

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

其中uploads是一个目录,返回被拒绝的权限(publickey)

然而

scp-i/Applications/XAMPP/htdocs/keypairfile.pem footer.php ec2-user@publicdns:/var/www/html

工作(注意标志的变化)。

上载是一个空文件夹

这些是上载目录的文件权限

DRWXRWX 3 geoffreysangston管理员102 11月15日01:40上传

这些是/var/www/html的文件权限

drwxr-x---2 ec2用户ec2用户4096 Jan 5 20:45 html


我已尝试将html更改为777,但也不起作用。

如果要将文件
/Applications/XAMPP/htdocs/keypairfile.pem
上载到
ec2-user@publicdns:/var/www/html
,您只需执行以下操作:

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

其中:

  • -C
    -压缩数据
  • -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):(要复制文件的路径)


附则-ec2-user@someipAddress在my case/home/ec2 user/

中,此ip地址的用户应该可以访问目标文件夹,即使上述解决方案不起作用,请检查对aws ec2实例的目标文件的权限。可能您可以尝试使用-
sudo chmod 777-R destinationFolder/*

我最初运行的是:

sudo-scp
一旦我只运行了
scp
,没有运行
sudo
,它就可以很好地复制所有内容:

scp

在我看来,
sudo scp
命令没有在
~/.SSH/id_rsa.pub

读取当前用户的SSH公钥,上传路径是/Applications/XAMPP/htdocs/projectname/uploads,我只是使用了“uploads”因为我在projectname目录中调用它,我尝试了scp-Cr/Applications/XAMPP/htdocs/keypairfile.pem/Applications/XAMPP/htdocs/projectname/uploads/ec2-user@ec2-54-200-81-203.us-west-2.compute.amazonaws.com:/var/www/html/也不起作用。现在,我看到“scp:/var/www/html/uploads:权限被拒绝”所以我想我有进展了。现在它可能与文件权限有关,所以我将进一步处理它们。非常感谢。不久前,我开始学习如何使用unix/控制台,并采用了一种快速入门的方法。你会怎么说这是最好的方式,还是说这真的只是一个边做边学的交易?谢谢。你的权限似乎还可以。我认为问题在于目标目录。我已经在我的答案中编辑了命令(2个更改),您可以尝试使用它。至于如何学习unix/linux,我更喜欢“边做边学”,但这取决于人。在网上阅读一些教程不会有什么坏处。因为这是我遇到类似问题(在RPi上)时的最佳答案,所以我只想补充一点,在我的例子中,我使用调试标志
vvv
运行它,并注意到scp正在尝试
/root/.ssh/id\u rsa
,但失败了。我只是简单地添加了
-I/home/pi/.ssh/id\u rsa
,这样它就指向了正确的用户密钥文件,并且工作正常。调试输出几乎总是有用的。thanx@DavidLevesqueOld问题,但OP问如何学习UNIX/Linux,“一天一个手册页”是WordPress codex建议的755或750的好方法。但777也可以。如果某人的destinationFolder在家怎么办?这不是一个好办法来允许home@Beyhan是的,我同意。通常情况下,您会将内容复制到公共目录,然后将其移动到相应的目录。谢谢-我没有意识到我必须将-I标志与pem文件、源文件和目标文件结合使用。
e.g scp -i aws.pem /home/user1/Desktop/testFile   ec2-user@someipAddress:/home/ec2-user/