OpenSSH 添加%2 至 known_hosts

OpenSSH 添加%2 至 known_hosts

当我使用 IPv6 连接到 CentOS 7 主机时,我的 ssh 客户端总是添加到<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 的后续版本中修复。

答案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:5342eth0

相关内容