ssh 免密码登录配置,及其原理
Posted xiaoyu1994
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssh 免密码登录配置,及其原理相关的知识,希望对你有一定的参考价值。
1、废话不多说,先上图
2、 典型的RSA非对称加密
RSA加密算法是一种典型的非对称加密算法,它基于大数的因式分解数学难题,它也是应用最广泛的非对称加密算法,于1978年由美国麻省理工学院(MIT)的三位学着:Ron Rivest、Adi Shamir 和 Leonard Adleman 共同提出。
它的原理较为简单,我们假设有消息发送方A和消息接收方B,通过下面的几个步骤,我们就可以完成消息的加密传递:
-
消息发送方A在本地构建密钥对,公钥和私钥;
-
消息发送方A将产生的公钥发送给消息接收方B;
-
B向A发送数据时,通过公钥进行加密,A接收到数据后通过私钥进行解密,完成一次通信;
-
反之,A向B发送数据时,通过私钥对数据进行加密,B接收到数据后通过公钥进行解密。
由于公钥是消息发送方A暴露给消息接收方B的,所以这种方式也存在一定的安全隐患,如果公钥在数据传输过程中泄漏,则A通过私钥加密的数据就可能被解密。
如果要建立更安全的加密消息传递模型,需要消息发送方和消息接收方各构建一套密钥对,并分别将各自的公钥暴露给对方,在进行消息传递时,A通过B的公钥对数据加密,B接收到消息通过B的私钥进行解密,反之,B通过A的公钥进行加密,A接收到消息后通过A的私钥进行解密。
当然,这种方式可能存在数据传递被模拟的隐患,我们可以通过数字签名等技术进行安全性的进一步提升。由于存在多次的非对称加解密,这种方式带来的效率问题也更加严重。
3、DH密钥交换算法
SSH的原理,是基于RSA非对称加密,RSA是基于大数的因式分解数学难题,下面要提到的DH密钥交换算法则是基于有限域上的离散对数难题。
DH算法是一种密钥协商算法,只用于密钥的分配,不用于消息的加解密。它提供了一种安全的交换密钥的方式,通过交换的密钥进行数据的加解密。就像SSH原理中,口令的交换,不过DH算法更安全。
我们举个例子来进行说明,假设有A、B两方,A作为发送者,B作为接收者。通过下面的几个步骤就可以构建出一个只属于双方的密钥口令,如下:
-
首先A、B双方,在通信前构建专属于自己的密钥对,假设分别是公钥A,私钥A,公钥B,私钥B;
-
A将自己的公钥A暴露给B,B通过私钥B和公钥A经过一定的运算产生出本地的密钥B;
-
同样,B将自己的公钥B暴露给A,A通过私钥A和公钥B经过一定的运算产生出本地的密钥A;
-
最后,这个算法有意思的一点就是,密钥A和密钥B是一致的,这样A、B双方就拥有了一个属于双方的“秘密”口令;
DH算法的产生是,对称加密向非对称加密的过度,为后续非对称加密的产生和发展奠定了基础。
4、生成公钥私钥
ssh-keygen -t rsa :rsa为默认加密算法
运行上面的命令以后,系统会出现一系列提示,可以一路回车。其中有一个问题是,要不要对私钥设置口令(passphrase),如果担心私钥的安全,这里可以设置一个。
命令完成后,在~/.ssh/目录下会生成两个新文件:id_rsa.pub和id_rsa。前者存放你自己的公钥,后者存放你自己的私钥。
5、将id_rsa.pub传输到登录主机
scp id_rsa.pub 用户名@Ip地址:路径
输入密码即可
6、在B主机.ssh目录找到 authorized_keys 文件
文件权限必须为一下:
将公钥内容追加到 authorized_keys文件中:cat id_rsa.pub >> authorized_keys
7、测试是否可以免密登录
ssh B主机
零下15度写的博客,冻死爹滴了。。。。。。。。
以上是关于ssh 免密码登录配置,及其原理的主要内容,如果未能解决你的问题,请参考以下文章
有啥方法方便用SecureCRT免密码用ssh登录linux主机。