我试图使用我的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实例,没有密码 但这并没有回答我的问题。


当前回答

首先,您应该将.pem文件的模式从读写模式更改为只读模式。这可以通过终端sudo chmod 400 your_public_key.pem中的一个命令来完成

其他回答

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

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

本视频将逐步介绍使用SCP将文件从本地计算机复制到AWS EC2 Linux实例的过程(包括下面提到的要点)。

要使用SCP纠正这个特定问题:

You need to specify the correct Linux user. From Amazon: For Amazon Linux, the user name is ec2-user. For RHEL, the user name is ec2-user or root. For Ubuntu, the user name is ubuntu or root. For Centos, the user name is centos. For Fedora, the user name is ec2-user. For SUSE, the user name is ec2-user or root. Otherwise, if ec2-user and root don't work, check with your AMI provider. Your private key must not be publicly visible. Run the following command so that only the root user can read the file. chmod 400 /path/to/yourKeyFile.pem

我也有同样的问题,我的解决办法是

SCP -i /path/pem -r /path/file/ ec2-user@public aws DNS名称:(此处不填写)

一旦你完成了这一部分,进入SSH服务器和mv文件到所需的位置

下面是EC2实例的工作细节:

scp -i /path/to/whatever.pem /users/me/path-to-file ec2-user@ec2-55-55-555-555.compute-1.amazonaws.com:~

开头有几点注意事项:

注意-i后面三个参数之间的空格 SCP是安全拷贝协议的缩写。知道这些单词会让你更容易记住命令。 -i指示您需要将.pem文件作为下一个参数。如果没有-i,则不需要.pem。 注意EC2实例的目标末尾的:~。

公共DNS SCP -i /path/my-key-pair。Pem /path/my-file.txt ec2-user@my-instance-public-dns-name:path/ (IPv6) SCP -i /path/my-key-pair。pem /path/my-file.txt ec2-user@\[my-instance-IPv6-address\]:path/