为什么我的 github 有两个 known_hosts 条目?

为什么我的 github 有两个 known_hosts 条目?

如果我运行,系统会提示以下内容:git clone [email protected]:some-org/some-repo.git

The authenticity of host 'github.com (192.30.253.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.

显然,我根据列表验证了指纹https://help.github.com/articles/github-s-ssh-key-fingerprints/,并回应yes

Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.253.113' (RSA) to the list of known hosts.
...etc.

结果是两个条目被添加到我的~/.ssh/known_hosts文件中,都使用相同的密钥,并且都经过了散列处理。

如果我用 确认密钥ssh-keyscan github.com,则密钥匹配。

但为什么我中的条目known_hosts,而不是一个?

答案1

通常,known_hosts文件的每一行都包含主机名/IP 地址列表。但是,当主机名经过哈希处理(为了简化匹配?)时,不会使用此方法,如手册页中所述sshd

另外,主机名也可以以散列形式存储,这样如果文件内容被泄露,主机名和地址就会被隐藏。散列主机名以“|”字符开头。 一行中只能出现一个散列主机名,并且不能应用上述任何否定或通配符运算符。

所以回答你的问题,

但是为什么在known_hosts中有两个条目,而不是一个?

其中一个是github.com,另一个192.30.253.113正如你在提示中确认的那样

警告:将“github.com,192.30.253.113”(RSA)永久添加到已知主机列表中。

如果你关闭已知主机哈希功能(没有充分的理由这样做),你将只得到一行,例如:

github.com,192.30.252.128 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==

相关内容