【发布时间】:2023-03-27 15:36:01
【问题描述】:
我的任务涉及 3 台机器
-
A:我的桌面 -
B:EC2 实例由A启动 -
C: 远程 linux 服务器,数据所在,我只有读取权限
任务基本上有3个步骤
- 从
A启动B - 将数据从
C下载到B到特定位置 - 更改
B上的部分下载数据
我知道如何使用 awscli 或 boto3 执行 1。如果我手动 ssh 到 EC2 实例,步骤 2 和 3 很容易。问题是如果这个任务需要自动化,我该如何处理登录凭据。
具体来说,我想在EC2实例出生后使用user_data运行shell脚本,但是数据下载使用scp需要密码。然后我可以将 ssh 凭证文件上传到 EC2 实例,但我无法利用 user_data 运行第 2 步和第 3 步的脚本。
所以我目前的解决方案都是来自 shell 脚本
- 从
A启动B - 从
A上传ssh凭证到B - ssh 从
A到B附带shell 命令,其中执行任务的步骤2 和3
这个解决方案对我来说真的很难看。在这种情况下有更好的做法吗?
【问题讨论】:
-
你在 B 上尝试过 ec2-roles 吗?
-
如果
C不是 aws 实例,ec2-roles 会起作用吗?
标签: linux shell amazon-web-services amazon-ec2 ssh