У меня есть производственные машины в 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