Предположим, у меня есть какое-то устройство с несколькими подобными адресами (из-за некоторой комбинации AD и VMWare Разрешение имени NAT, но это не имеет значения):
[centos@localhost ~]$ getent hosts my-weird-AD-device.company.com
192.168.1.10 my-weird-AD-device.company.com
192.168.4.13 my-weird-AD-device.company.com
У меня есть маршрут 192.168.1.10
с устройства в том же сегменте сети, что и 192.168.4.13
.
Если я попытаюсь подключиться по SSH напрямую к 192.168.1.10
, все будет работать нормально, но SSH-соединение по имя хоста не удастся, потому что оно попытается подключиться к 192.168.4.13
.
...
debug2: resolving "my-weird-ad-device.company.com" port 22
debug1: Connecting to my-weird-ad-device.company.com [192.168.4.13] port 22.
Могу ли я каким-то образом контролировать это поведение из клиента SSH ? Я не хочу жестко кодировать IP-адрес в ~ / .ssh / config
или / etc / hosts
, поскольку рабочий IP-адрес не статический - я хочу сделать это с помощью поиска по имени если возможно.
Как OpenSSH / NSS определяет адрес, используемый для имени хоста {{ 1}} с несколькими записями DNS?
getaddrinfo () преобразователь имен libc. Выполняется попытка разрешения каждого адреса, см. sshconnect.c
ssh_config
иногда полезен как средство сопоставления имен, потому что ключевые слова HostName
настоящие имена могут находиться под Host
или Сопоставить
блоков. Проблема в том, что я не знаю способа изменить их без дублирования IP-адресов. Его недостаточно, чтобы переписывать имена как угодно.
glibc позволяет влиять на порядок сортировки getaddrinfo через gai.conf. Это не конфигурация клиента ssh, она повлияет на разрешение имени glibc и почти на все программное обеспечение в системе.
Несколько записей DNS с одним и тем же именем, только одна из которых работает для подключения, вызывают проблемы. Измените DNS так, чтобы было имя, которое можно было использовать для SSH. Например, переименование одной из этих зон так, чтобы полное имя было unqiue, скажем my-weird-AD-device.zone.company.com
. Или добавьте дополнительное короткое имя в DNS для этого хоста только с правильным IP, так my-weird-AD-device-2
.