scp -r /Applications/XAMPP/htdocs/keypairfile.pem uploads ec2-user@publicdns:/var/www/html
其中uploads是目录,返回Permission denied(publickey)。
然而
scp -i /Applications/XAMPP/htdocs/keypairfile.pem footer.php ec2-user@publicdns:/var/www/html
工作(注意标志更改)。
上传是一个空文件夹
这些是上传目录的文件权限
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,但这也无效。
答案 0 :(得分:94)
-i
标志指定要使用的私钥(.pem文件)。如果您没有指定该标志(如第一个命令中那样),它将使用您的默认ssh密钥(通常位于~/.ssh/
下)。
因此,在您的第一个命令中,您实际上是要求scp
使用您的默认ssh密钥上传.pem文件。我认为这不是你想要的。
请改为使用:
scp -r -i /Applications/XAMPP/htdocs/keypairfile.pem uploads/* ec2-user@publicdns:/var/www/html/uploads
答案 1 :(得分:14)
将文件从本地传输到远程主机
scp -i(密钥路径)(要传输文件的路径)(用户名@ ip):(要复制文件的路径)
e.g scp -i aws.pem /home/user1/Desktop/testFile ec2-user@someipAddress:/home/ec2-user/
P.S。 - 这个ip地址的ec2-user @ someipAddress应该可以访问我的案例中的目标文件夹/ home / ec2-user /
答案 2 :(得分:14)
即使上述解决方案不起作用,也要检查aws ec2实例的目标文件的权限。也许你可以试试 - sudo chmod 777 -R destinationFolder/*
答案 3 :(得分:2)
如果您要将文件/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
- 递归答案 4 :(得分:0)
我最初在跑步:
sudo scp
一旦我只运行scp
,而没有sudo
,它就会复制一切正常:
scp
在我看来,sudo scp
命令没有读取~/.ssh/id_rsa.pub
上当前用户的SSH公钥。