SSH免密码登录,无非是一种非对称加密算法,但是我们对非对称加密算法的使用总是似懂非懂,感觉就是一个公钥(给别人进行加密),一个密钥(给自己进行解密)。
下面从这几个问题来理解SSH免密码登录
什么是非对称加密算法
SSH免密码登录原理
一、非对称加密算法
1)举个例子来说明:
以Tom和Jack寄送私人信件为例中间人:Hack
场景一:
某一天,住在北京的Tom给住在上海的好朋友Jack寄送一份私人信件,但是在寄送的过程中,被一个叫Hack的人中途拿出来信件进行了篡改,然后在按照之前的方式将信件放入信封中。这个时候,Tom和Jack都不知道这个情况,同样当住在上海的Jack给住在北京的Tom写信,在寄送过程中,也会中途被篡改,所以需要想个办法来解决这个中途被篡改的问题。
场景二:
经过上面场景的教训后,Tom就想到在寄送私人信件前,先将信件放入Jack事先约定的保险箱,在进行寄送,在寄送的过程中,因为Hack没有钥匙,所以打不开保险箱,从而到寄送到Jack手中,Jack通过钥匙打开保险箱,信件都没有被篡改;同理,在Jack给Tom回信或者是写信,也使用同样的方式,在寄送信件前,将信件放入与Tom约定好的保险箱中,从而能够安全寄送到Tom手中。
对于上面的两个场景描述,从信件篡改到通过约定好的将信件放入保险箱来保证信件不被篡改,安全到达对方手中,其中涉及到两个东西:1、保险箱 2、钥匙(记住这两个,会与非对称加密中定义概念吻合)。
2)非对称加密算法
非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
定义来源:https://baike.baidu.com/item/%E9%9D%9E%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95/1208652?fr=aladdin
其中涉及的两个密匙:公开密匙和私有密匙;后续会直接使用公钥和私钥来描述。在场景二中,对信件的保护是通过保险箱,对信件能够拿出来解读是通过保险箱的钥匙,其实实现的就是一个加密和解密的过程,其中我们将保险箱看成公钥进行加密,钥匙看成私钥进行解密。
二、SSH免密码登录原理
有了上述的非对称加密算法的认识,现在我们开始认识下SSH免密码登录。
需求场景:有两台服务器ServerA和ServerB(均使用root用户),现在需要在ServerA通过ssh root@ServerB,不需要输入密码直接可以访问。
1)、SSH免密码原理
2)、基本的配置
有了上述的基本图片描述,我们现在就按照图中描述来配置上述的需求场景,同步来验证。1、ServerA上生成公钥和私钥
在/.ssh目录下有两个文件:id_ rsa(私钥)和id_rsa.pub(公钥)
2、将ServerA的公钥发送给ServerB
执行后,可以在ServerB上查看文件authoriezd_keys文件中,多了一个ServerA公钥的内容。
3、验证
登录不需要输入密码则配置成功。
【欢迎投稿】
如果大家有原创好文投稿,请直接给公号发送留言。
① 留言格式:
【投稿】+《文章标题》+ 文章链接
示例:
【投稿】《手写SpringMVC-实战篇》:
② 附上您的个人简介~|
分享朋友圈、点赞就是对全栈工程师成长记公众号最大的支持!
领取专属 10元无门槛券
私享最新 技术干货