ssh信任关系简介

社区广播:运维派(Yunweipai.com)是国内最早成立的IT运维社区,欢迎大家投稿,让运维人不再孤寂的成长!

ssh虽然很多兄弟都用得很就手,都知道建立ssh互信简直就是吃炒面;哪我们就来介绍介绍ssh具体细节是咋整的,或许能给你一些小小的启示

记得上第一节信息安全课的时候(还好哥专业课从不翘课,所幸还记得一些大概),有这个一个有趣的信息安全例子
A要发一个装有非常私密东西的箱子给异地的B(姑且认为是一些类似于陈老师自拍之类的作品), 所以让快递来取走发往异地,A觉得快递兄弟不靠谱,万一途中把箱子打开看了,哪A的这些自拍作品就人手一份了,所以A就在箱子上挂了把锁,然后让快递发往异地,B收到之后看到上面有把锁,就明白了A的意思,B也在箱子上加上了自己的一把锁,然后把箱子发回去给A,A收到箱子后把自己锁打开,把箱子再次发给B,B顺利的用自己的钥匙打开了箱子。


或许你会觉得这方法太土,你可能会让DHL来取箱子发给B,然后回头又让联邦快递把钥匙发给B,这样不是更简单
在现实生活中确实可以这样,因为这里又一个前提DHL和联邦快递是竞争对手;不过在互联网上你这样发,无异于陈老师拿电脑去给人家修,最终大家都会知道你有多傻多天真

哪我们来看看ssh咋玩的(没有rose,没有DA,将就着看吧)
1.ssh向sshd发起请求,sshd会告诉请求过来的ssh自己是啥版本,还又能跟那些版本搭话;
2.ssh确认自己版本够新可以和sshd交互后,ssh和sshd就开始交换双方能支持的加密算法之类的信息
3.sshd就首先生成session key, 把其中的sshd_key_pub发给ssh, 并且随机生成一个id,也发给ssh
4.ssh自己也生成session key,然后和id异或得到临时的tmp_session_key,然后用sshd_key_pub加密发给sshd
5.sshd用自己的sshd_key解密得到tmp_session_key,然后和id异或之后就得到了ssh生成的session key
所以到这步ssh和sshd之间就建立起了一个加密过的通道

这里介绍密钥方式的(密码方式的地球人都知道咋玩)以rsa算法为例
前提:client得先把自己的id_rsa.pub发给了server,server把这个id_rsa.pub存到自己的authorized_keys里头
1.client用已经建立起来的加密通道,用session key加密自己的id_rsa.pub发给server
2.server端用session key解开获取到id_rsa.pub,在authorized_keys里头找匹配的key,如果找到了就生成校验码verify_code,用id_rsa.pub加密,再用session key再次加密,然后才发给client
3.client用session key解开之后,用自己的id_rsa解密内容,得到verify_code,然后用session key加密verify_code再发给server
4.server用session key解开后跟自己发出去的verify_code校验,如果一致就鉴权通过

网友评论comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注

  1. Guang说道:

    讲得很形象,可以写成“大话”、“水煮”之类的系列介绍文章。

Copyright © 2012-2017 YUNWEIPAI.COM - 运维派 - 粤ICP备14090526号-3
扫二维码
扫二维码
返回顶部