【问题标题】:SSH into EC2 by using a zsh script to fetch EC2 IP Address通过使用 zsh 脚本 SSH 到 EC2 以获取 EC2 IP 地址
【发布时间】:2021-04-21 00:00:35
【问题描述】:

我想在我的 zprofile 中创建一个别名,它将根据名称标签获取 EC2 IP 地址,然后通过 SSH 连接到该机器。我用的是mac。

这个 zsh 脚本成功检索到我想通过 ssh 进入的 EC2 机器的 IP 地址:

aws ec2 describe-instances \
--filters "Name=tag:Name, Values=my-name" \
--query "Reservations[*].Instances[*].[PrivateIpAddress]" \
--output text

输出可能类似于:some.ip.address

这个 zsh 脚本让我可以通过 SSH 连接到我的 EC2 机器:

alias ec2="ssh person@some.ip.address.us-east-1.place"

如何将第二个脚本的 IP 地址替换为第一个脚本的输出?

谢谢!

【问题讨论】:

    标签: bash amazon-web-services amazon-ec2 zsh ip-address


    【解决方案1】:

    可能最简单的方法是设置第二个别名,这样你就可以有类似的东西:

    alias get_ec2_ip='aws ec2 describe-instances --filters "Name=tag:Name, Values=my-name" --query "Reservations[*].Instances[*].[PrivateIpAddress]" --output text'
    

    然后你可以使用zsh的command substitution,像这样:

    alias ec2='ssh person@`get_ec2_ip`'
    

    请注意,在这里使用单引号而不是双引号非常重要!否则,您将在设置别名时运行 get_ec2_ip,这 不是 您想要的 - 您希望它将文字字符串 ssh person@`get_ec2_ip` 保存为别名,以便 @987654325每次运行 ec2 时都会运行 @。

    【讨论】:

      猜你喜欢
      • 2014-03-23
      • 2013-02-11
      • 2016-12-02
      • 2020-03-12
      • 1970-01-01
      • 2022-09-29
      • 1970-01-01
      • 2013-01-26
      • 2013-08-16
      相关资源
      最近更新 更多