在 Bash 脚本中将本地终端切换到 aws EC2 实例



我需要自动化 aws 配置连接到 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 脚本的新手。

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

如果必须为此使用 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 系统管理器来管理服务器和执行脚本。更多在这里: 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/

我必须为此创建另一个 bash 脚本。 当我将 SSH 请求发送到 EC2 实例进行连接并在本地传递和执行我新创建的 bash 文件时。

ssh -i $Path_to_PemFile_Private ec2-user@$Private_Instance_IP 'bash -s' < ./private_instance.sh 2> /tmp/Error

所以第二个 bash private_instance.sh用于运行我需要在 EC2 实例中运行的 commads。

相关内容

  • 没有找到相关文章

最新更新