私钥和公钥的简单理解

对称(共享秘钥)
非对称(公开秘钥)
数字签名与加密:
加密体系:公钥加密、私钥解密
签名体系:私钥加密、公钥解密
 
数据p-->>  
A {A的私钥(签名)->B的公钥(加密)}
-->>
B {B的私钥(解密)->A的公钥(认证)}
-->>p
 
 
 

一、SSH密钥认证配置过程:

              (主机A需要连接主机B,则主机A需生成自签名密钥,将公钥发送给主机B即可实现主机A对主机B的远程密钥认证连接)

            前要:软件包相关信息,目标获取到工具名称及用法,补充自己rpm命令相关知识

                          

                           rpm -ql  openssh-clients | more                   //查询openssh-clients下有那些文件及工具

                          which ssh-keygen                                   //查询ssh-keygen工具在哪个目录下(/usr/bin/ssh-keygen)

                         rpm -qf  /usr/bin/ssh-keygen              //查询/usr/bin/ssh-keygen文件在哪个软件包

                         ssh-keygen --help                            //查询ssh-keygen语法使用-t表示公钥算法

              1、利用ssh-keygen在客户端生成一对密钥(公、私钥)

                       ssh-keygen  -t  rsa     //为当前用户生成密钥,root用户默认保存在/root/.ssh/目录(注意:生成过程会提示输入私钥保护口令,可以为空)

              2、利用ssh-copy-id将客户端公钥信息发送到需要通过密钥认证连接的目标主机

                        ssh-copy-id root@192.168.195.123         //默认会将~/.ssh/id_rsa.pub(客户端的公钥)发送到目标远程主机所要授权登录用户的~/.ssh/authorized_keys(公钥数据库,主要保存ssh客户端的公钥信息)文件中

              3、通过配置/etc/ssh/ssh-config文件禁用口令认证,最终实现密钥认证连接到目标主机

                       vi /etc/ssh/ssh-config       //修改PasswordAuthentication  no

                        systemctl restart sshd              //重庆sshd服务

                        ssh root@192.168.195.123                 //实现密钥认证连接到目标主机,不需要输入口令(远端服务器利用我的公钥进行认证)

             

                 

         补充: 客户端known_hosts文件          //表示当前用户登录过的所有服务器的公钥数据,客户端与远程服务器建立连接,远程服务器需要将远程服务器的公钥交给客户端,客户端保存在/root/.ssh/known_hosts文件中,客户端将发送给服务器的数据通过服务器的公钥进行加密,服务器获取到数据后用自己的私钥进行解密得到数据。

                     分析:authorized_keys与known_hosts区别 (个人理解,需要进一步验证)

                              都为公钥数据库     

                             authorized_keys为,别人访问我,发给我的公钥,

                            known_hosts为,我访问别人,别人发给我的。

来源:https://www.bilibili.com/video/BV1Hq4y1M7ZL?spm_id_from=333.999.0.0&vd_source=a42355572f865b8eb799da280275502b

 


 

二、web认证基于ssl认证过程
 
目标:用户对数据进行加密并发送到web服务器
 
            过程:请求web服务器建立连接,服务器将证书发给用户,用户利用web服务器的证书转换为服务器的公钥并利用服务器公钥对发送的数据进行加密,服务器拿到数据后用web服务器的私钥进行解密得到数据。
 

 

 

 

posted @ 2019-10-09 14:08  boomohg  阅读(599)  评论(0编辑  收藏  举报