密钥对详解

回复 收藏
本帖最后由 ecithy 于 2016-2-24 15:14 编辑

【密钥对的工作原理】
密钥对是指公钥加密(或者非对称加密)的加密算法,比如RSA和DSA等,这类算法使用一对密钥即公钥和私钥。其中,公钥可以随便分发,只用于加密,私钥则只由一人持有,只用于解密。任何用公钥加密的信息,用私钥解密后即可得到原来的信息。
RSA密钥对的工作原理如下:
假设两个用户A,B进行通信,A和B都要产生一对用于加密和解密的公钥和私钥,A的公钥和私钥分别为publicA和privateA,B的公钥和私钥分别为publicB和privateB。
(1)A和B要相互发送信息,所以彼此要交换公钥,A的公钥告诉B,B的公钥告诉A。但是私钥保密,只是自己拥有。
(2)A向B发送信息,明文为x 。
     A用B的公钥对明文x进行加密形成密文publicB(x),然后传输密文给B;
     B收到密文,用B的私钥对密文进行解密privateB(c(x)),得到要通信的明文x。
(3)B向A发送信息,明文为y 。
     B用A的公钥对明文y进行加密形成密文publicA(y),然后传输密文给A;
     A收到密文,用A的私钥对密文进行解密privateA(c(x)),得到要通信的明文y。

总之:
1.用接收方的公钥来加密传输方的信息,接收方的私钥来解密传输方的信息,拥有密钥对的一方是接受方或要登陆到对方机器的一方。
2.为了方便记忆:把公钥比作锁,私钥比作钥匙,那么发送方只有锁,接受方同时有锁和钥匙。

【实例】
两台linux密钥验证登陆
hyB:192.168.11.7
先关闭被登录的linux机器的selinux
临时关闭selinux: setenforce 0
永久关闭,编辑 /etc/selinux/config 把SELINUX=enforcing改为SELINUX=disabled 然后重启Linux


在A上执行:
[root@hyA ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):  #输入密码
Enter same passphrase again:  #再次输入密码
Your identification has been saved in /root/.ssh/id_rsa.  #私钥存放在本地即A/root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub.  #公钥存放在本地即A/root/.ssh/id_rsa.pub
The key fingerprint is:
a6:8b:41:74:dc:27:03:8c:9f:f6:5b:9d:b5:40:e2:f2 root@hyA
The key's randomart image is:
+--[ RSA 2048]----+
|     o.          |
|    ...o  . .    |
|    ..o.+..o     |
|   . .+ .+. . .  |
|    .. .So . + . |
|   .   o. E o .  |
|    . .  o       |
|     o ..        |
|    . .          |
+-----------------+

[root@hyA ~]# cat  .ssh/id_rsa.pub  #查看公钥
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtJRZnkzna4W/9ukd2CbTEYHzs4umy44kcpRv2KX6+/f5qujsW8VpJPPCdkz5G6wQAs8mGkuPZyWKRTsO8Am421lFumFXn+DayXE9I6yrgM58B/FLAJjs18vUWHuZKvqifX3bbnb7bL1/wde60WXmRr4bXOO2Phi+v9iosrvcpA9/OCoopItNssYhG1qkwD7c+Jjg+YqdXU4NuatuNppVUKC0U38xAt4kP0n5YGxewPcr8Z0gqEgE3ka3T3OVAsDQCLU+Fj00W9xq2+wb8yXeoVdIZoBRth6VylOJNR1rbnrmc7Vgj2e//6sRbhPEWFWMkhyhFAPKgYCqsJ5MBxIRWw== root@hyA

在B上执行:
[root@hyB ~]# mkdir /root/.ssh
[root@hyB ~]# chmod 700 /root/.ssh
[root@hyB ~]# vi /root/.ssh/authorized_keys  #添加公钥
[root@hyB ~]# chmod 600 !$
[root@hyA ~]#yum -y install openssh-clients  #安装ssh
A上连接B

ssh root@hyB的ip

index.png


2016-02-24 15:10 举报
已邀请:
0

杨金彪

赞同来自:

+1

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: