github后台密钥对匹配原理分析

最近一直在研究SSH在github的验证原理,事情起源于公司一小兄弟的webstorm在无任何改动的情况下和github连接验证失败,详见以前的文章《webstorm无法连接github报You‘re are using an RSA key with SHA-1, which is no longer allowed.》。由此衍生出一个疑问:github后台是如何匹配git客户端发上来的连接请求,从而找到账户内设置的公钥,再通过公钥进行加密的?

1)A同学说:客户端在第一次请求时把.ssh目录下的id_rsa.pub公钥文件上送到github,github到公钥库内匹配找到以前维护的公钥。可事实上,你把id_rsa.pub文件删除,然后用ssh -T git@github.com 命令测试,仍可以验证通过。所以上送公钥的说法不成立

2)B同学说:客户端在生成密钥对的时候,将客户端硬件识别信息(诸如MAC)加入到了公钥中,在验证链接时将此信息发送到了github,github通过这个信息匹配到公钥。可实际上是,你把id_rsa私钥文件复制到其他机器上做测试,仍可以验证通过。所以这种说法也不成立

3)C同学说:客户端在用ssh-keygen -t rsa -C "test@163.com"命令生成密钥对的时候,在C参数后跟了个邮箱名,这个邮箱名必须和github的注册用户邮箱一致,所以在连接时会匹配到这个邮箱,找到对应的公钥。可经过试验,你改成任何一个邮箱或者字符串,连接仍旧测试成功。事实上这个C参数只是一个密钥对的备注信息

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值