本文主要是介绍如何生成SSH服务器的ed25519公钥SHA256指纹,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近搭建ubuntu服务器,远程登录让确认指纹,研究一番搞懂了,记录一下。
1、putty 第一次登录服务器,出现提示:
让确认服务器指纹是否正确。
其中:箭头指向的 ed25519 :是一种非对称加密的签名方法,还有其他签名方法。
箭头指向的 SHA256 :是信息摘要(哈希)算法,对一长串信息进行转换处理,产生256个二进制位(32字节)的摘要数据。 这个摘要数据就是信息的指纹(fingerprint) ,
用指纹(信息摘要)几乎可以唯一的表示一串信息, 原始信息稍作改变,摘要(指纹)就会改变。
这里的意思是,putty收到了远端的 ssh-ed25519 公钥, 这个公钥比较长,用SHA256算法生成了简短摘要(指纹: 上面红框里,冒号后面的文字内容),让用户判断指纹是否和想访问的服务器的指纹相符。
服务器是刚搭建好的,暂时也不知道其ssh-ed25519 公钥指纹。需要到服务器端操作生成下:
服务器端ssh公钥私钥保存在 /etc/ssh/ 目录下:输入:
ls -1 /etc/ssh/ssh_host*
可以查看,输出如下:
/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_rsa_key.pub
带.pub后缀的是公钥,文件名里有ed25519的是前述SSH登录时用到的公钥,用如下指令生成其SHA256 摘要:
ssh-keygen -E sha256 -lf /etc/ssh/ssh_host_ed25519_key.pub
注:去掉 -E 参数指定摘要算法,缺省 sha256, 不用 -E sha256 输出相同,即:
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
输出如下:
上图中SHA256冒号后的一串文字就是ed25519公钥摘要(指纹), 和前面让确认的指纹进行对比,完全相同,证明SSH登录访问的服务器是预期的服务器。
批量生成指纹的方法:
for f in /etc/ssh/*key.pub; do ssh-keygen -E sha256 -lf $f; done
注:可简化为:
for f in /etc/ssh/*key.pub; do ssh-keygen -lf $f; done
附加:
1、计算SHA1摘要(指纹):
ssh-keygen -E sha256 -lf 文件名
2、批量计算SHA1摘要(指纹):
for f in /etc/ssh/*key.pub; do ssh-keygen -E sha1 -lf $f; done
3、计算md5摘要(指纹):
ssh-keygen -E md5 -lf 文件名
4、批量计算md5摘要(指纹):
for f in /etc/ssh/*key.pub; do ssh-keygen -E md5 -lf $f; done
这篇关于如何生成SSH服务器的ed25519公钥SHA256指纹的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!