OpenSSH добавляет %2 в известные_хосты

При подключении к хосту CentOS 7 с IPv6 мой ssh-клиент всегда добавляет %2 в known_hosts, даже если ключ хоста для этого хоста (с IPv6-адресом хоста) уже присутствует в known_hosts.

Что означает %2? Я использую немодифицированный OpenSSH из CentOS 7 версии 6.6.1p1-25, релиз 25.el7_2.

Обновление: В одном из комментариев упоминалось разрешение имен как возможная проблема. Действительно, я использую systemd-resolved на клиентской машине. Когда я удаляю resolved из /etc/nsswitch.conf (опция hosts), проблема больше не возникает. Это с systemd-resolved-219-19.el7_2.7.x86_64).

Обновление (февраль 2017): Я только что заметил systemd-resolved bug 4465, так что поведение, которое я заметил, было/есть просто ошибка, которая будет исправлена в более поздней версии systemd.

2
задан 8 February 2017 в 22:34
1 ответ

Различные классы адресов IPv6 имеют разную область действия. Вы встретите адреса хоста области (например, :: 1 ), ссылку (например, fe80 :: 200: 5eff: fe00: 5342 ), глобальную (например ] 2001: db8 :: 1 ).

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

Все адреса, начинающиеся с fe80: , находятся в области локального канала и могут потребовать спецификации интерфейса. Интерфейсы можно указать по имени или по номеру. Например, на компьютере я набираю это из eth0 - это номер интерфейса 2 , поэтому fe80 :: 200: 5eff: fe00: 5342% 2 и ] fe80 :: 200: 5eff: fe00: 5342% eth0 будет эквивалентным. Любая запись будет указывать на хост со ссылкой -локальный адрес fe80 :: 200: 5eff: fe00: 5342 в сети, к которой подключен мой интерфейс eth0 .

6
ответ дан 3 December 2019 в 09:15

Теги

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