Ранее я добавил в свой локальный (Mac OS x 10.6) файл / etc / hosts публичный IP-адрес моего сервера примерно так:
123.123.123.123 myServer
чтобы я мог использовать ssh на myServer без необходимости запоминать IP-адрес сервера и работал нормально (с использованием открытого ключа shh), например:
ssh myServer1
Однако на экземпляре Amazon EC2 я попытался сделать то же самое, используя предоставленный длинный общедоступный адрес DNS, а в / etc / hosts я добавил это:
ec2-23-23-23-23.compute-1.amazonaws.com myServer2
но когда я пытаюсь ssh myServer2 говорит, что "имя хоста не может быть разрешено"
есть идеи, почему это не работает? Как я могу заставить это работать?
Полная команда, которую я хочу использовать:
ssh -i key.pem user@ec2-23-23-23-23.compute-1.amazonaws.com
и я пытаюсь создать ярлык, который может быть примерно таким:
ssh -l username myServer2 or ssh -i key.pem -l username myServer2
Любые идеи?
ОБНОВЛЕНИЕ: вместо этого я использовал псевдоним, который проще:
Добавлен внутри .bash_profile (MAC OS x)
alias myServer='ssh -i /path/to/key.pem user@ec2-23-23-23-23.compute-1.amazonaws.com'
(необходимо снова закрыть и открыть терминал или использовать исходный файл ~ / .bash_profile) Затем ssh просто с использованием myServer в командной строке $ myServer
Вместо редактирования вашего hosts
файл, прочтите о Конфигурация клиента SSH.
Вы можете создавать псевдонимы хостов в ~/.ssh/config
. Например:
Host myServer2
HostName ec2-23-23-23-23.compute-1.amazonaws.com
UserName username
Если вы используете только SSH, все будет нормально. Если вам нужно получить доступ к другим службам, либо настройте DNS, либо используйте перенаправление портов в SSH (с -L
).
Формат строк в /etc/hosts
является
<ip address> <hostname> [<alias> ...]
поэтому вы должны указать IP-адрес в качестве первого поля. Вот почему ваша попытка использовать имя хоста EC2 не сработала.
В любом случае вам не нужно этого делать, потому что (если разрешение DNS работает) имя будет разрешено поиском DNS.