使用scp将文件复制到Amazon EC2实例?

我正在尝试使用我的Macterminal从下载(phpMyAdmin我在线下载)scp文件到我的Amazon 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不可访问:没有这样的文件或目录。 权限被拒绝(publickey)。 失去了连接

我的myAmazonkey.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不可访问:没有这样的文件或目录。 权限被拒绝(publickey)。 失去了连接

任何人都可以请告诉我如何解决我的问题?

PS有一个类似的post: 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实例 。

您的密钥不能公开查看SSH工作。 如果需要使用此命令:

 chmod 400 yourPublicKeyFile.pem 

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

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

-r如果它是一个目录。

你应该在你的本地机器上尝试上面的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:~/. 

我有完全相同的问题,我的解决办法是

scp -i /path/pem -r /path/file/ ec2-user@public aws dns name:在这里留空)

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

 scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile user@hostname:PATH OF SERVER/serverdirectory 

检查.pem文件的权限… openssh通常不喜欢世界上可读的私钥,并且会失败(iir,scp在为用户提供反馈方面做得不是很好)。

你可以简单地用你的AWS主机SSH密钥吗?

首先,您应该将.pem文件的模式从读写模式更改为只读模式。 这可以通过terminalsudo chmod 400 your_public_key.pem的单个命令sudo chmod 400 your_public_key.pem

我尝试了上面提到的所有build议,没有任何工作。 我终止了当前的实例,启动了另一个实例,并重复相同的过程。 这一次没有问题。 有时候,这可能是遥远的艾米的错。

使用SCP将文件从本地机器复制到AWS EC2 Linux实例的过程在以下video中逐步介绍(包括下面提到的要点): https : //www.youtube.com/watch?v = CfSRsiNe0OE

使用SCP来纠正这个特殊问题:

  1. 您需要指定正确的Linux用户。 来自亚马逊 :

    • 对于Amazon Linux,用户名是ec2-user。
    • 对于RHEL,用户名是ec2-user或root。
    • 对于Ubuntu,用户名是ubuntu或root。
    • 对于Centos,用户名是centos。
    • 对于Fedora,用户名是ec2-user。
    • 对于SUSE,用户名是ec2-user或root。
    • 否则,如果ec2-user和root不起作用,请咨询您的AMI提供商。
  2. 您的私钥不得公开显示。 运行以下命令,以便只有root用户才能读取该文件。

     chmod 400 /path/to/yourKeyFile.pem 

以下是适用于EC2实例的详细信息:

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

开始的几个笔记:

  1. 请注意在-i之后给出的三个参数之间的空格
  2. scp代表安全传输协议。 了解这些单词可以让您更轻松地记住命令。
  3. -i您需要将.pem文件作为下一个参数。 如果没有-i ,比你不需要.pem
  4. 请注意:~在EC2实例的目的地末尾。

我会用:

scp -i "path to .pem file" "file to be copeide from local machine" username@amazoninstance: 'destination folder to copy file on remote machine'