首页 > 解决方案 > 在 Bash 脚本中将本地终端切换到 aws EC2 实例

问题描述

我需要自动化aws configure连接到 ec2并使用shell 脚本在 EC2 实例内运行命令。

echo "Do you need to configre AWS configure [y/n]?"
read -r aws_configure


if [ y = $aws_configure ]; then
    echo "######################################"
    echo "             AWS Configure            "
    echo "######################################"
    aws configure
else 
    echo "Skipped AWS Configuration !"
    echo "---------------------------"
fi

echo "######################################"
echo "     Connecting to EC2 Instance       "
echo "######################################"

echo "Which swarm that you need to create [private(a) or public(b)]?"
read -r swarm 

ssh -i ~/Documents/AWS/eu_instance_key.pem ec2-user@<EC2 Instance IP address>
**docker image ls ==> I need to run this command on EC2 instance**

我可以通过向实例发送ssh请求来连接到EC2实例。但我无法将EC2实例切换到我的其他命令。

使用 bash 脚本连接到实例后,我想在EC2服务器上运行一些命令。

我找不到这样做的方法,而且我是新的 shell 脚本。

任何帮助,将不胜感激!谢谢你。

标签: bashamazon-web-servicesshellamazon-ec2

解决方案


如果您必须为此使用 SSH,请尝试使用aws configure set来配置凭据、区域和其他属性,而无需从标准输入中读取并使脚本复杂化。更多在这里https://docs.aws.amazon.com/cli/latest/reference/configure/set.html

此外,您可以将 IAM 角色与您的 EC2 实例相关联,而不是显式设置凭证,它会自动生成和轮换临时凭证,因此您无需编写脚本。更多信息:https ://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html

或者更好的是,使用 AWS Systems Manager 来管理服务器和执行脚本。更多信息:https ://docs.aws.amazon.com/systems-manager/latest/userguide/execute-remote-commands.html

查看本教程以开始使用:https ://aws.amazon.com/getting-started/tutorials/remotely-run-commands-ec2-instance-systems-manager/


推荐阅读