如何生成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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值