使用 zsh 脚本通过 SSH 访问 EC2 来获取 EC2 IP 地址

问题描述 投票:0回答:2

我想在我的 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 [email protected]"

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

谢谢!

bash amazon-web-services amazon-ec2 zsh ip-address
2个回答
2
投票

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

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

然后你可以使用 zsh 的 命令替换,就像这样:

alias ec2='ssh person@`get_ec2_ip`'

请注意,使用单引号非常重要,而不是双引号!否则,您将在设置别名时运行

get_ec2_ip
,这不是您想要的 - 您希望它将文字字符串 ssh person@`get_ec2_ip` 保存为别名,以便每次都运行 get_ec2_ip你跑
ec2
    


0
投票
https://github.com/ivoronin/ec2ssh

- 允许您通过实例 ID、私有、公共或 IPv6 IP 地址、私有 DNS 名称或名称标签连接到 EC2 实例。

© www.soinside.com 2019 - 2024. All rights reserved.