У меня есть экземпляр EC2 на динамическом IP, и он не выполняет никаких DDNS, чтобы указывать на него публичное имя хоста.Я хотел бы установить ярлык в моем ssh_config
для сервера и попросить aws
сообщить мне, что такое 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
из aws
, но у меня есть другие вещи, которые я бы не потерял, если бы скрипт повозился с файлом. Некоторые другие люди могут использовать псевдонимы оболочки вместо ssh
, но это усложняет работу других служб, которые конкретно используют SSH.
Я бы также предпочел не использовать внешний скрипт, если это возможно.
Host FOO ec2-FOO
User ec2-user
IdentityFile ~/.ssh/creds/some.pem
# Irrelevant?
Hostname example.com
# Neither alternative works (assume full `aws` command)
ProxyCommand bash -c 'ssh -i %i %u@$(aws ec2 describe-instances…)'
ProxyCommand nc $(aws ec2 describe-instances …) %p
# Note that %i (used here to specify IdentityFile) is not a valid token for
# ProxyCommand. http://man7.org/linux/man-pages/man5/ssh_config.5.html#TOKENS
Вопросы, связанные с данной: