OpenSSH 将 <IPv6>%2 添加到 known_hosts

Fel*_*arz 2 ssh ipv6 known-hosts ssh-keys systemd

当我使用 IPv6 连接到 CentOS 7 主机时<IPv6 host addr>%2known_hosts即使该主机的主机密钥(带有主机的 IPv6 地址)已经存在于known_hosts.

代表什么%2?我使用的是 CentOS 7 中未经修改的 OpenSSH,版本 6.6.1p1-25,版本 25.el7_2。

更新:评论提到名称解析是一个可能的问题。事实上,我在客户端机器上使用 systemd-resolved。当我resolved/etc/nsswitch.confhosts选项)中删除时,问题不再发生。这是与systemd-resolved-219-19.el7_2.7.x86_64)。

更新(2017 年 2 月):我刚刚注意到systemd 已解决的错误 4465,所以我注意到的行为是/只是一个错误,将在更高版本的 systemd 中修复。

kas*_*erd 6

不同类别的 IPv6 地址具有不同的范围。您会遇到范围主机(例如::1)、链接(例如fe80::200:5eff:fe00:5342)、全局(例如2001:db8::1)的地址。

当在具有多个链接的主机上使用具有作用域链接的地址时,该%符号用于指示地址用于哪个链接。

所有以 开头的地址fe80:都在链路本地范围内,可能需要接口规范。接口可以通过其名称或编号来指定。例如,在我正在输入的计算机上,这eth0是 interface number 2,因此fe80::200:5eff:fe00:5342%2fe80::200:5eff:fe00:5342%eth0将是等效的。任何一种表示法都将指示fe80::200:5eff:fe00:5342我的eth0接口连接到的网络上具有链接本地地址的主机。