首页 文章

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

提问于
浏览
155

我正在尝试使用我的Mac终端将下载文件(我在线下载的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:~/.

我得到的错误: Warning: Identity file myAmazonKey.pem not accessible: No such file or directory. Permission denied (publickey). lost connection

我的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:~/.

和我得到的错误: Warning: Identity file /User/Hello_Kitty22/Downloads/myAmazonkey.pem not accessible: No such file or directory. Permission denied (publickey). lost connection

谁能告诉我如何解决我的问题?

附:有一个类似的帖子:scp (secure copy) to ec2 instance without password但它没有回答我的问题 .

12 回答

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

    检查.pem文件的权限... openssh通常不喜欢世界上可读的私钥,并且会失败(iir,scp不能很好地向用户提供这种反馈) .

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

  • 5

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

  • 0

    我尝试了上面提到的所有建议,没有任何效果 . 我终止了当前的实例,启动了另一个实例并重复了同样的过程 . 这个时候没问题 . 有时它可能是远程ami的错 .

  • 3

    尝试将用户指定为 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:~/.
    

    Connecting to Linux/UNIX Instances Using SSH .

  • 15

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

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

    -r如果它是一个目录 .

  • 307

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

    chmod 400 yourPublicKeyFile.pem
    
  • 0

    您应该在本地计算机上尝试上面的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:~/.
    
  • -1

    我有完全相同的问题,我的解决方案是

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

    完成此部分后,进入ssh服务器和mv文件到所需位置

  • 0

    以下是 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实例目标末尾的 :~ .

  • 24

    使用SCP将文件从本地计算机复制到AWS EC2 Linux实例的过程将在this video中逐步介绍(包括下面提到的几点) .

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

    • 您需要指定正确的Linux用户 . 从Amazon

    • 对于Amazon Linux,用户名为ec2-user .

    • 对于RHEL,用户名为ec2-user或root .

    • 对于Ubuntu,用户名是ubuntu或root .

    • 对于Centos,用户名是centos .

    • 对于Fedora,用户名是ec2-user .

    • 对于SUSE,用户名是ec2-user或root .

    • 否则,如果ec2-user和root不起作用,请咨询您的AMI提供商 .

    • 您的私钥不得公开显示 . 运行以下命令,以便只有root用户可以读取该文件 .

    chmod 400 /path/to/yourKeyFile.pem
    
  • 0

    我会用:

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

相关问题