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

  • 相关阅读:
    西门子ACSON X300E如何通过网线与计算机连接
    PreScan快速入门到精通第二十一讲驾驶员模型之驾驶员在环
    JSD-2204-JavaScript-Vue-Day05
    4. react路由
    延时任务-基于netty时间轮算法实现
    1008hw/
    Maven安装详解
    进行股票量化交易接口程序化开发要注意的事项
    基于Unity3D的AR射击游戏设计与实现
    分布式事务
  • 原文地址:https://blog.csdn.net/xiyuyan/article/details/133811843