You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无公网IPv4的AWS EC2实例:如何通过AWS CLI传输文件

无公网IPv4的AWS Linux实例通过AWS CLI实现文件传输

方法一:利用EC2 Instance Connect作为代理配合scp传输

既然你已经能通过aws ec2-instance-connect ssh命令连接实例,可以将该命令作为scp的代理,直接实现文件传输,无需公网IP。

本地文件上传至实例

scp -o ProxyCommand="aws ec2-instance-connect ssh --instance-id <INSTANCE_ID> --private-key-file <PATH_TO_PRIVATE_KEY> --connection-type eice --proxy-only" <LOCAL_FILE_PATH> <INSTANCE_USER>@<INSTANCE_PRIVATE_IP>:<REMOTE_TARGET_PATH>
  • 替换<INSTANCE_USER>为实例的系统用户(如ec2-user、ubuntu)
  • <INSTANCE_PRIVATE_IP>为实例的私有IPv4地址

实例文件下载至本地

scp -o ProxyCommand="aws ec2-instance-connect ssh --instance-id <INSTANCE_ID> --private-key-file <PATH_TO_PRIVATE_KEY> --connection-type eice --proxy-only" <INSTANCE_USER>@<INSTANCE_PRIVATE_IP>:<REMOTE_FILE_PATH> <LOCAL_TARGET_PATH>

方法二:以AWS S3作为中转传输

如果实例可以访问S3(通过VPC端点或IAM角色赋予S3访问权限),可以借助S3作为中间存储实现文件传输:

本地→S3→实例

  1. 本地文件上传到S3:
aws s3 cp <LOCAL_FILE_PATH> s3://<YOUR_S3_BUCKET>/<FILE_NAME>
  1. 登录实例后,从S3下载文件:
aws s3 cp s3://<YOUR_S3_BUCKET>/<FILE_NAME> <REMOTE_TARGET_PATH>

实例→S3→本地

  1. 登录实例后,上传文件到S3:
aws s3 cp <REMOTE_FILE_PATH> s3://<YOUR_S3_BUCKET>/<FILE_NAME>
  1. 本地从S3下载文件:
aws s3 cp s3://<YOUR_S3_BUCKET>/<FILE_NAME> <LOCAL_TARGET_PATH>

注意事项

  • 方法一需要确保本地AWS CLI拥有ec2-instance-connect:SendSSHPublicKey等相关权限
  • 方法二需要实例被赋予访问目标S3桶的IAM权限,若实例无公网IP,建议配置S3 VPC端点避免走公网流量

内容的提问来源于stack exchange,提问作者Revan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 03:56:01