我试图使用我的Mac终端scp一个文件从下载(phpMyAdmin我下载在线)到我的亚马逊EC2实例。

我使用的命令是:

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

我得到的错误是: 警告:身份文件myAmazonKey。pem not accessible:表示没有这样的文件或目录。 权限被拒绝(公钥)。 失去联系

都是我的亚马逊钥匙。pem和phpMyAdmin-3.4.5-all-languages.tar.gz都在下载中,所以我尝试了

scp -i /Users/Hello_Kitty22/Downloads/myAmazonKey.pem /Users/Hello_Kitty22/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

我得到的错误是: 警告:身份文件/User/Hello_Kitty22/Downloads/myAmazonkey。pem not accessible:表示没有这样的文件或目录。 权限被拒绝(公钥)。 失去联系

有人能告诉我怎么解决我的问题吗?

附注:有一个类似的帖子:SCP(安全副本)到ec2实例,没有密码 但这并没有回答我的问题。


当前回答

尝试将用户指定为ec2-user,例如:

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz ec2-user@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

参见使用SSH连接Linux/UNIX实例。

其他回答

我尝试了上面提到的所有建议,但都没用。我终止当前实例,启动另一个实例,并重复完全相同的过程。这次没有问题。有时候可能是远方朋友的错。

请尝试使用该命令

如果你的实例使用ubuntu

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz  ec2-user@mec2-50-17-16-67.compute-1.amazonaws.com:~/.

您可以从这里获得有关实例的更多信息 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connection-prereqs.html

第二个目录是您的目标目的地,不要在那里使用服务器名称。换句话说,您不需要提到当前所在机器的机器名称。

scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path

-r如果是目录。

检查.pem文件的权限…Openssh通常不喜欢世界可读的私钥,并且会失败(iir, SCP在向用户提供这种反馈方面做得不好)。

您可以简单地用该密钥ssh到AWS主机吗?

您应该在本地计算机上尝试上面的scp命令。

在本地机器上尝试:

scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz  hk22@mec2-50-17-16-67.compute-1.amazonaws.com:~/.