SSH 公钥私钥分 主机 和用户, 主机用来验证主机身份, 是openssl-server安装时生成 位于 /etc/ssh/ssh_host_*_key /etc/ssh/ssh_host_*_key.pub
当 B 主机 已经存有 A 主机的 主机 公钥, A主机主机公钥发生改变,会提示如下
根据提示把192.168.8.11的主机公钥移除,默认在$HOME/.ssh/known_hosts中, 再次链接
提示我们的是 ECDSA格式的公钥指纹, 我们可以在 192.168.8.11 进行验证
我们使用 ssh-keygen 的 -l -f选项来验证
生成公钥指纹的概括步骤如下:
- 公钥(以及任选的一些额外数据)被编码成一个字节序列,以确保同一指纹以后在相同情况下可以创建,因此编码必须是确定的,并且任何附加的数据必须与公共密钥一同存放。附加数据通常是使用此公共密钥的人应该知道的信息,如:密钥持有人的身份(此情况下,X.509信任固定的指纹,且所述附加数据包括一个X.509自签名证书)[2]。
- 在前面步骤中产生的数据被散列加密,如使用SHA-1或SHA-2。
- 如果需要,散列函数的输出可以缩短,以提供更方便管理的指纹。
产生的短指纹可用于验证一个很长的公共密钥。例如,一个典型RSA公共密钥的长度会在1024位以上,MD5或SHA-1的指纹却只有128或160位。
当指纹被显示时,通常被编码成十六进制字符串。然后,这些字符串格式化成可读性字符组。例如,如一个128位的MD5指纹SSH将被显示为:
43:51:43:a1:b5:fc:8b:b7:0a:3a:a9:b1:0f:66:73:a8
一般来说会有 这几种 dsa ecdsa ed25519 rsa , 不同发行版有所不同