Назад | Перейти на главную страницу

Доступ к облачным машинам по имени

У меня есть производственные машины в Google Cloud и Amazon. В обоих облаках у меня есть общий сервер для каждого вызываемого мониторинга с общедоступным IP-адресом. Через эти машины мониторинга я получаю доступ ко всем машинам в соответствующих облаках. Однако проблема в том, что я должен получить к ним доступ, например ssh -i abc.pem user@<ip address> вместо этого я хочу получить к ним доступ, как ssh -i abc.pem user@<machine name> Как этого добиться?

Ответ @ JohnMahowald правильный, если ваше решение должно масштабироваться для группы людей, которым всем нужен удобный доступ к вашим облачным экземплярам.

Но если это только вы и / или вы не можете заставить администратора DNS взаимодействовать с вашим запросом, вы можете изучить другие возможности.

Если вам нужен удобный ssh-доступ, ваш ~/.ssh/config файл - ваш друг.

$ cat << EOF >> ~/.ssh/config
Host machine_name
  Hostname ip.addr.of.machine
  User remote_username
  IdentityFile ~/.ssh/abc.pem

EOF

С этой строфой в твоей ~/.ssh/config файл, когда вы вводите команду:

$ ssh machine_name

ssh будет использовать IP-адрес, указанный как ip.addr.of.machine и удаленное имя пользователя remote_username для подключения к этому хосту.

Ваш /etc/hosts файл также может заменять фактическую запись DNS, например, если по этому адресу есть веб-страница или агент SNMP, который вы хотите запросить. Но опять же, это, вероятно, эффективно только в том случае, если очень небольшому количеству людей требуется удобный доступ.

В .ssh/config решение легко настраивается, если вам нужен ssh-доступ. И даже если ты делать есть запись DNS для вашего хоста, вы все равно можете использовать более короткий и простой для ввода псевдоним в Host строку и введите DNS-имя в Hostname линия.

Host gcp
    Hostname monitoring.gcp.example.net
    User gcp_username
    IdentityFile ~/.ssh/abc.pem

Host aws
    Hostname monitoring.aws.example.net
    User aws_username
    IdentityFile ~/.ssh/abc.pem

С теми config записи вы можете просто:

$ ssh gcp

или

$ ssh aws

для входа в любой из экземпляров, используя правильное имя пользователя для каждого экземпляра и не запоминая, какой ключ идентификации использовать.

DNS.

Легко вставить в DNS вашей организации monitoring.gcp.example.net и monitoring.aws.example.net