20

如何使用 scp 命令将文件上传到 aws 服务器

  • /Downloads在本地机器中有 .pem 文件
  • 我正在尝试将文件复制到/imagesAWS 服务器中的文件夹

    我可以使用什么命令?

谢谢,

4

6 回答 6

37

您可以使用普通scp

scp -i ~/Downloads/file.pem local_image_file user@ec2_elastic_ip:/home/user/images/

您需要将弹性 IP 放入 EC2 实例,在 EC2 实例安全组中打开本地机器 IP 的端口 22,并使用正确的用户(可以是 ec2-user、admin 或 ubuntu(查看 AMI 文档) )。

于 2013-08-12T15:59:30.040 回答
5

迭戈的回答有效。但是,如果您不知道您的弹性 IP,那么您可以简单地scp使用以下命令(检查参数的顺序)

scp -i path-to-your-identifier .pem 待复制文件ubuntu@public-IP:/ required-path

仅供参考,这里ubuntu是您的 AWS 用户,public-IP有点像 54.2xx.xxx.xxx 例如 54.200.100.100 等(如果顺序混乱:标识符之前的文件名,那么您会收到Permission denied (publickey).lost connection错误消息)

另外,请记住.pem文件的权限.. 应该是 400 或 600。不向所有人公开。希望能帮助到你!

于 2014-07-24T13:08:32.013 回答
3

有很多方法可以实现你想要的

  1. 使用 s3cmd http://s3tools.org/s3cmd

  2. 或使用cyberduck http://cyberduck.ch/

  3. 或使用 amazon Java API 编写工具

于 2013-08-11T06:46:23.787 回答
3

您可以尝试 kitten 实用程序,它是 boto3 的包装器。您可以轻松地上传/下载文件并在 EC2 服务器上或同时在多个服务器上运行命令。

kitten put -i ~/.ssh/key.pem cat.jpg /tmp [SERVER NAME][SERVER IP]

服务器名称是例如ubuntuec2-user等。

这会将cat.jpg文件上传到/tmp服务器目录

于 2021-04-13T09:45:50.043 回答
1

另一种替代方法scprsync.

rsync 的一些好处

rsync 命令

rsync -ravze "ssh -i /home/your-user/your-key.pem "  --exclude '.env'  --exclude '.git/' /var/www/your-folder-to-upload/*  ubuntu@xx.xxx.xxx.xxx:/var/www/your-remote-folder

现在,如果您发现此语法有点冗长,您可以使用aws-upload来完成上述所有操作,但您只需使用 tab 键即可。

于 2017-03-29T02:02:00.527 回答
1

这是从本地上传到远程的正确方法。

scp -i "zeus_aws.pem" ~/Downloads/retail_market_db-07-01-2021.sql ubuntu@ec2-3-108-200-27.us-east-2.compute.amazonaws.com:/var/www/

可能是更好的方法

于 2021-02-09T06:43:04.437 回答