美文网首页
SSH Key Pair 认证

SSH Key Pair 认证

作者: 心蓝风云 | 来源:发表于2014-04-30 19:06 被阅读0次

    最近被人问起了ssh key 认证的过程这个问题,之前我一直以为自己是知道的,不就是把client的PUB key加入到server的authorized_keys文件中么,感觉So easy!但是真回答的时候,就哑火了。So,我决定补上这一课。

    以下内容参考互联网文章

    1. 概念
      公钥(public key): 一般用来加密
      私钥(private key):一般用来解密
      为什么用“一般”,是因为公钥在某些情况也可以用来解密的,比如数字证书,以后再详谈。。。

    2. 认证过程
      假设:
      Ac 代表 客户端公钥
      Bc 代表 客户端密钥
      As 代表 服务器公钥
      Bs 代表 服务器密钥

    • 会话密钥(session key)生成

      • 客户端请求连接服务器,服务器将 As 发送给客户端。
      • 服务器生成会话ID(session id),设为 p,发送给客户端。
      • 客户端生成会话密钥(session key),设为 q,并计算 r = p xor q。
      • 客户端将 r 用 As 进行加密,结果发送给服务器。
      • 服务器用 Bs 进行解密,获得 r。
      • 服务器进行 r xor p 的运算,获得 q。
      • 至此服务器和客户端都知道了会话密钥q,以后的传输都将被 q 加密。
    • 认证

      • 服务器生成随机数 x,并用 Ac 加密后生成结果 S(x),发送给客户端。
      • 客户端使用 Bc 解密 S(x) 得到 x 。
      • 客户端计算 q + x 的 md5 值 n(q+x),q为上一步得到的会话密钥。
      • 服务器计算 q + x 的 md5 值 m(q+x)。
      • 客户端将 n(q+x) 发送给服务器。
      • 服务器比较 m(q+x) 和 n(q+x),两者相同则认证成功。

    相关文章

      网友评论

          本文标题:SSH Key Pair 认证

          本文链接:https://www.haomeiwen.com/subject/qhrrtttx.html