OpenSSH 將 <IPv6>%2 添加到 known_hosts
當我使用 IPv6 連接到 CentOS 7 主機時,我的 ssh 客戶端總是添加
<IPv6 host addr>%2
到,known_hosts
即使該主機的主機密鑰(帶有主機的 IPv6 地址)已經存在於known_hosts
.代表什麼
%2
?我正在使用來自 CentOS 7 的未經修改的 OpenSSH,它是版本 6.6.1p1-25,版本 25.el7_2。更新:評論提到名稱解析是一個可能的問題。事實上,我在客戶端機器上使用 systemd-resolved 。當我
resolved
從/etc/nsswitch.conf
(hosts
選項)中刪除時,問題不再發生。這是與systemd-resolved-219-19.el7_2.7.x86_64
)。**更新(2017 年 2 月):**我剛剛注意到systemd 解決的錯誤 4465,所以我注意到的行為是/只是一個錯誤,將在更高版本的 systemd 中修復。
不同類別的 IPv6 地址具有不同的範圍。您將遇到範圍主機(例如
::1
)、連結(例如fe80::200:5eff:fe00:5342
)、全域(例如2001:db8::1
)的地址。當在具有多個連結的主機上使用具有範圍連結的地址時,該
%
符號用於指示在哪個連結上使用該地址。所有以 開頭的地址
fe80:
都在連結本地範圍內,並且可能需要介面規範。介面可以通過其名稱或編號來指定。例如,在我輸入的電腦上eth0
是 interface number2
,所以fe80::200:5eff:fe00:5342%2
和fe80::200:5eff:fe00:5342%eth0
是等價的。fe80::200:5eff:fe00:5342
任何一種表示法都將指示我的eth0
介面連接到的網路上具有連結本地地址的主機。