我在动态 IP 上有一个 EC2 实例,它没有执行任何类型的 DDNS 来保持指向它的公共主机名。我想在我ssh_config
的服务器中设置一个快捷方式,并要求aws
CLI 告诉我 IP 或主机名是什么。
$ aws ec2 describe-instances \
--filters Name=key-name,Values=FOO \
--query 'Reservations[*].Instances[*].PublicDnsName' \
--output 'text'
ec2-XXX-XXX-XXX-XXX.compute-X.amazonaws.com
但我不知道如何将公共 IP 或主机名解析委托给aws
.
我看到很多人都有用于生成ssh_config
fromaws
的脚本,但是如果脚本要修改文件,我不想丢失其他东西。其他一些人使用shell 别名来代替ssh
,但这会使其他专门依赖 SSH 的服务变得复杂。
如果可能的话,我也不想使用外部脚本。
Host FOO ec2-FOO
User ec2-user
IdentityFile ~/.ssh/creds/some.pem
# Irrelevant?
Hostname example.com
# Neither alternative below works (assume full `aws` command)
ProxyCommand bash -c 'ssh -i %i %u@$(aws ec2 describe-instances …)'
ProxyCommand nc $(aws ec2 describe-instances …) %p
请注意,%i
(上面用于指定IdentityFile
)不是 的有效标记ProxyCommand
。
相关问题
- 堆栈溢出:Amazon EC2 主机名
- 服务器故障:在中动态生成 SSH 主机条目
~/.ssh/config