Как OpenSSH / NSS определяет адрес, который будет использоваться для имени хоста с несколькими записями DNS?

Предположим, у меня есть какое-то устройство с несколькими подобными адресами (из-за некоторой комбинации 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-адрес не статический - я хочу сделать это с помощью поиска по имени если возможно.

0
задан 1 June 2021 в 20:47
1 ответ

Как 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 .

1
ответ дан 28 July 2021 в 14:06

Теги

Похожие вопросы