一文理解什么是SSH免密码登陆

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-实战篇》:

② 附上您的个人简介~|

分享朋友圈、点赞就是对全栈工程师成长记公众号最大的支持!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180731G1O31300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券