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

我试图使用我的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:表示没有这样的文件或目录。 权限被拒绝(公钥)。 失去联系< /强> < / p >

都是我的亚马逊钥匙。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:~/.

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

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

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

415487 次浏览

检查.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:~/.

我会用:

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

尝试将用户指定为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实例

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

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

-r如果是目录。

为了SSH工作,您的密钥必须是不可公开可见的。如果需要使用此命令:

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

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

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

scp -i /path/pem -r /path/file/ ec2-user@public aws dns name:(此处留空)

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

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

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

要使用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提供程序进行检查。
    • 李< / ul > < / >
    • 您的私钥不能公开可见。执行以下命令,确保只有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格式适合我

scp -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~/SampleFile.txt ~/SampleFile2.txt

SampleFile.txt:它将是你根目录的路径(在我的例子中,是/home/ubuntu)。在我的情况下,我想下载的文件是在/var/www

SampleFile2.txt:它将是你机器根路径的路径(在我的例子中,/home/MyPCUserName)

所以,我必须写下面的命令

scp -i /path/my-key-pair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com:~/../../var/www/Filename.zip ~/Downloads

从本地发送文件到服务器:

scp -i .ssh/awsinstance。pem my_local_file ubuntu@XX.XXX.XXX.XXX: / home / ubuntu < / p >

从服务器下载文件到本地:

scp -i .ssh/awsinstance.pem ubuntu@XX.XXX.XXX.XXX: / home / ubuntu / server_file。< / p >

这对我很管用。我用了另外两个答案的组合来回答这个问题。

scp -i /Users/me/documents/myKP.pem -r /Users/me/desktop/testDir \
ec2-user@ec2-11-111-11-11.compute-1.amazonaws.com:/home/ec2-user/remoteDir

“ec2-user@ec2-11-111-11-11.compute-1.amazonaws.com”是从ec2实例的公共DNS复制粘贴过来的。

SCP赞扬

从本地发送文件到远程服务器

sudo scp -i ../下载/new_bb_key. sh。Pem ./dump.zip ubuntu@13.127.124.129:~/。

从远程服务器发送文件到本地

sudo scp -i ~/下载/new_bb_key。pem ubuntu@13.127.124.129:/home/ubuntu/LatestDBdump.zip下载/

  1. < p >公共DNS

    scp -i /path/my-key-pair.pem /path/my-file.txt ec2-user@my-instance-public-dns-name:path/
    
  2. < p > (IPv6)

     scp -i /path/my-key-pair.pem /path/my-file.txt ec2-user@\[my-instance-IPv6-address\]:path/
    

请尝试使用该命令

如果你的实例使用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 < / p >