【问题标题】:scp (secure copy) to ec2 instance without passwordscp(安全复制)到没有密码的 ec2 实例
【发布时间】:2011-09-27 08:03:36
【问题描述】:

我有一个 EC2 实例正在运行 (FreeBSD 9 AMI ami-8cce3fe5),我可以使用我的亚马逊创建的密钥文件 ssh 进入它,无需密码提示,没问题。

但是,当我想使用 scp 将文件复制到实例时,系统会要求我输入密码:

scp somefile.txt -i mykey.pem root@my.ec2.id.amazonaws.com:/

Password:

任何想法为什么会发生这种情况/如何预防?

【问题讨论】:

  • 您是否为用户和主机使用完全相同的标识符?
  • 我不确定我理解你所说的标识符是什么意思,你能解释一下吗?
  • 如果一个连接使用 IP 地址,而另一个连接使用名称,它将不起作用。我刚刚看到您使用-i 选项来提供您的身份。可能您还应该显示用于使用 ssh 登录的命令。
  • 感谢 lynch,想通了!

标签: amazon-web-services amazon-ec2 ssh scp pem


【解决方案1】:

我想通了。我的论点顺序错误。这有效:

scp -i mykey.pem somefile.txt root@my.ec2.id.amazonaws.com:/

【讨论】:

  • 谁懂怎么通过ssh连接ec2,把ssh命令改成scp,在pem文件后面加上name文件。
  • 因为这个答案有点老了,我的新 EC2 实例中的一个更新的例子: scp -i kp1.pem ./file.txt ec2-user@1.2.3.4:/home/ec2-用户
  • @siliconrockstar 您的声明ec2-user@1.2.3.4:/home/ec2-user 很容易被更短更简单的ec2-user@1.2.3.4:./ ./ FTW 取代!
  • 一个非常晚的评论,但如果您使用的是非标准端口,@ClaudioSantos 的建议并不完全有效。 ssh 是 -p,scp 是 -P。
  • 我可以使用我的 *.PEM 文件通过 ssh 连接到 ec2。但是,当我想用​​它来 SCP 文件时,它给了我“权限被拒绝”错误!我该如何解决这个问题?
【解决方案2】:
scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path

【讨论】:

  • (-r) 参数不是必需的,但需要从远程路径的末尾删除 (/)。你的例子对我有用,非常感谢
【解决方案3】:

将文件从本地服务器复制到远程服务器

sudo scp -i my-pem-file.pem ./source/test.txt ec2-user@1.2.3.4:~/destination/

将文件从远程服务器复制到本地计算机

sudo scp -i my-pem-file.pem ec2-user@1.2.3.4:~/source/of/remote/test.txt ./where/to/put

所以基本的语法是:-

scp -i my-pem-file.pem username@source:/location/to/file username@destination:/where/to/put

-i 用于 identity_file

【讨论】:

    【解决方案4】:

    我使用以下命令从本地 linux Centos 7 复制到 AWS EC2。

    scp -i user_key.pem file.txt ec2-user@my.ec2.id.amazonaws.com:/home/ec2-user
    

    【讨论】:

      【解决方案5】:

      siliconerockstar 的评论作为答案,因为它对我有用

      scp -i kp1.pem ./file.txt ec2-user@1.2.3.4:/home/ec2-user
      

      【讨论】:

        【解决方案6】:
        scp -i ~/.ssh/key.pem ec2-user@ip:/home/ec2-user/file-to-copy.txt .
        

        文件名不应位于 pem 文件和 ec2-user 字符串之间 - 这不起作用。这也允许您保留复制文件的名称。

        【讨论】:

          【解决方案7】:

          假设您要发送的 pem 文件和 somefile.txt 位于 Downloads 文件夹中

          scp -i ~/Downloads/mykey.pem ~/Downloads/somefile.txt root@my.ec2.id.amazonaws.com:~/
          

          如果它不起作用,请告诉我

          【讨论】:

          • scp -i /Users/Username/Downloads/myfile.pem -r ubuntu@my.ect.id.amazonaws.com:~/ ~/Desktop/ 如果你想从服务器传输文件到本地
          • 谢谢,我最后得到了 :/ 的“访问被拒绝”,但 :~/ 它可以工作
          • 是的,因为 :/ 是根文件夹, :~/ 是用户文件夹,所以如果你是 root 用户,那么 :/ 或 :~/ 任何东西都可以工作,如果你不是 root 用户,那么只有 :~/你必须使用。
          【解决方案8】:

          scp -i /home/barkat/Downloads/LamppServer.pem lampp_x64_12.04.tar.gz

          这对你们所有人都非常有帮助

          【讨论】:

            【解决方案9】:

            我的 hadoopec2cluster.pem 文件是我本地 Mac 上目录中唯一的一个,无法使用 scp -i hadoopec2cluster.pem hadoopec2cluster.pem ubuntu@serverip:~ 将其 scp 到 aws。

            将 hadoopec2cluster.pem 复制到 hadoopec2cluster_2.pem,然后复制到 scp -i hadoopec2cluster.pem hadoopec2cluster_2.pem ubuntu@serverip:~。瞧!

            【讨论】:

              【解决方案10】:

              我被挂断了,因为我正在指定我的公钥文件

              scp -i [private key file path]
              

              当我发现这个错误并将其改为私钥路径时,我已经准备好了。

              【讨论】:

                【解决方案11】:

                在您的情况下,用户 root 不会有任何问题。但在某些情况下,您需要以其他用户身份在 SSH 下登录,请确保您使用的目录 scp-ing 对您使用 SSH 登录的用户具有足够的权限。

                【讨论】:

                  【解决方案12】:

                  要使用 PSCP,您需要在使用 PuTTYgen 转换您的私钥中生成的私钥。您还需要 Linux 实例的公共 DNS 地址

                  pscp -i C:\path\my-key-pair.ppk C:\path\Sample_file.txt ec2-user@public_dns:/home/ec2-user/Sample_file.txt
                  

                  【讨论】:

                    【解决方案13】:

                    编写这段代码

                    scp -r -o "ForwardAgent=yes" /Users/pengge/11.vim root@192.168.2.228:/root/
                    

                    如果您有可以访问目标服务器的 SSH 密钥而源服务器没有,添加 -o "ForwardAgent=yes" 将允许您将 SSH 代理转发到源服务器,以便它可以使用您的 SSH 密钥连接到目标服务器。

                    【讨论】:

                      【解决方案14】:

                      刚刚测试:

                      运行以下命令:

                      sudo shred -u /etc/ssh/*_key /etc/ssh/*_key.pub
                      

                      然后:

                      1. 创建 ami(ec2 的图像)。
                      2. 从第 2 步的新 ami(图像)启动选择了新键。

                      【讨论】:

                        猜你喜欢
                        • 2018-07-30
                        • 1970-01-01
                        • 2012-07-08
                        • 1970-01-01
                        • 2020-05-20
                        • 1970-01-01
                        • 2013-10-30
                        • 2014-03-19
                        • 2013-04-16
                        相关资源
                        最近更新 更多