OpenSSH 主机密钥指纹的显示格式最近在版本 6.7 和 6.8 之间发生了变化。连接到新主机时,消息现在如下所示:
user@desktop:~$ ssh 10.33.1.114
The authenticity of host '10.33.1.114 (10.33.1.114)' can't be established.
ECDSA key fingerprint is SHA256:9ZTSzJsnk0byQRs24iKoYrf/d5eDvQL60tR/zO41k/I.
Are you sure you want to continue connecting (yes/no)?
在远程主机上server
(我通过第三台机器到达,我之前使用旧客户端接受了密钥),我可以看到指纹
user@server:~$ ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key
256 a2:7e:2b:87:4c:47:69:16:78:9e:1a:4b:db:a7:a2:57 root@server (ECDSA)
但没有办法将这两者匹配起来。
ssh
如果我在 上安装旧版本desktop
,并首先使用它进行连接,我会看到
user@desktop:~$ ssh 10.33.1.114
The authenticity of host '10.33.1.114 (10.33.1.114)' can't be established.
ECDSA key fingerprint is a2:7e:2b:87:4c:47:69:16:78:9e:1a:4b:db:a7:a2:57.
Are you sure you want to continue connecting (yes/no)?
匹配,所以我可以安全地接受它,并且它被添加到我的~/.ssh/known_hosts
.然后新版本ssh
也接受它。但这需要我ssh
在desktop
.
从关于服务器指纹的另一个问题的答案,我了解到旧的表格可以显示为ssh-keygen -E md5
,而新的表格可以显示为-E sha256
。但该选项仅在 SHA256 成为默认值时才出现 - on-E
的版本只能显示 MD5。要查看我信任的密钥的 SHA256 指纹,我首先必须检索它(例如通过第三台机器)并将其放在较新的机器可以找到的地方。或者我必须在. (对于 来说意味着完全不同的东西。)ssh-keygen
server
ssh-keygen
ssh-keygen
server
-E
ssh
如何以相同的格式显示两个密钥(我信任的密钥和我所看到的密钥)?最好不要安装额外的版本,或者复制关键文件?
答案1
使用
ssh -o FingerprintHash=md5 10.33.1.114
md5
从客户端获取旧指纹。