Когда я подключаюсь к хосту CentOS 7 с IPv6, мой клиент ssh всегда добавляет <IPv6 host addr>%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 4465 поэтому поведение, которое я заметил, было / является просто ошибкой, которая будет исправлена в более поздней версии systemd.
Различные классы 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
интерфейс подключен к.