При подключении к хосту CentOS 7 с IPv6 мой ssh-клиент всегда добавляет
в 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.
Различные классы адресов 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
.