scp(安全复制)到没有密码的ec2实例

Hof*_*off 382 ssh scp amazon-ec2 pem amazon-web-services

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

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

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

Password:
Run Code Online (Sandbox Code Playgroud)

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

Hof*_*off 767

我想到了.我的论点错误.这有效:

scp -i mykey.pem somefile.txt root@my.ec2.id.amazonaws.com:/
Run Code Online (Sandbox Code Playgroud)

  • 从谁了解如何通过ssh连接到ec2,只需将`ssh`命令更改为`scp`并在pem文件后添加名称文件. (13认同)
  • 由于这个答案有点陈旧,我新EC2实例的最新例子是:scp -i kp1.pem ./file.txt ec2-user@1.2.3.4:/ home/ec2-user (11认同)
  • @siliconrockstar 你的声明 `ec2-user@1.2.3.4:/home/ec2-user` 很容易被更短更简单的 `ec2-user@1.2.3.4:./` `./` FTW 替换! (3认同)
  • 我可以使用我的 *.PEM 文件通过 ssh 连接到 ec2。但是,当我想用​​它来 SCP 文件时,它给了我“权限被拒绝”错误!我该如何解决这个问题? (3认同)
  • 一个很晚的评论,但是如果您使用的是非标准端口,@ ClaudioSantos的建议将无法正常工作。对于ssh是-p,对于scp是-P。 (2认同)

Sye*_*iom 55

scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path
Run Code Online (Sandbox Code Playgroud)


Jam*_*yda 40

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

sudo scp -i my-pem-file.pem ./source/test.txt ec2-user@1.2.3.4:~/destination/
Run Code Online (Sandbox Code Playgroud)

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

sudo scp -i my-pem-file.pem ec2-user@1.2.3.4:~/source/of/remote/test.txt ./where/to/put
Run Code Online (Sandbox Code Playgroud)

所以基本的语法是:-

scp -i my-pem-file.pem username@source:/location/to/file username@destination:/where/to/put
Run Code Online (Sandbox Code Playgroud)

-i用于identity_file


Ren*_*nho 35

我使用下面的命令从本地linux Centos 7复制到AWS EC2.

scp -i user_key.pem file.txt ec2-user@my.ec2.id.amazonaws.com:/home/ec2-user
Run Code Online (Sandbox Code Playgroud)


jos*_*ine 20

硅橡胶之星的评论成为一个答案,因为它对我有用

__CODE__


Del*_*ele 19

scp -i ~/.ssh/key.pem ec2-user@ip:/home/ec2-user/file-to-copy.txt .
Run Code Online (Sandbox Code Playgroud)

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


Yat*_*ngh 8

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

scp -i ~/Downloads/mykey.pem ~/Downloads/somefile.txt root@my.ec2.id.amazonaws.com:~/
Run Code Online (Sandbox Code Playgroud)

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

  • 谢谢我得到了"拒绝访问",最后用`:/`但是`:〜/`它有效 (2认同)