如果我运行git clone git@github.com: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.
Run Code Online (Sandbox Code Playgroud)
显然,我根据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.
Run Code Online (Sandbox Code Playgroud)
这导致两个条目被添加到我的~/.ssh/known_hosts文件中,都具有相同的密钥,并且都经过哈希处理。
如果我用 确认密钥ssh-keyscan github.com,则密钥匹配。
但是为什么我在 中有两个条目known_hosts,而不是一个?
通常,该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==
| 归档时间: |
|
| 查看次数: |
1927 次 |
| 最近记录: |