Ssh

OpenSSH 將 <IPv6>%2 添加到 known_hosts

  • February 8, 2017

當我使用 IPv6 連接到 CentOS 7 主機時,我的 ssh 客戶端總是添加&lt;IPv6 host addr&gt;%2到,known_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 中修復。

不同類別的 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介面連接到的網路上具有連結本地地址的主機。

引用自:https://serverfault.com/questions/771352