公钥和私钥其实就是一种加密算法。公钥与私钥的核心就是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能用公钥解密。
公钥,就是发给大家使用的,你可以通过电子邮件发布,或者通过网站让别人下载,用来加密/验章用的。私钥,只有个人拥有,用来解密/签章。
用发送加密的邮件进行分析。
首先,我必须拥有你的公钥,你也必须拥有我的公钥。
当一对多的时(服务端给客户端),我用你的公钥给这个邮件加密,这样就保证这个邮件不被别的客户端看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用你的私钥就可以解密,就能看到内容。
当多对一的时(客户端对服务端),我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。
当A->B资料时,A会使用B的公钥加密,这样才能确保只有B能解开,保证了资料的保密性。验证方面则是使用签验章的机制,当A群传资料给大家时,会以自己的私钥做签章,如此所有收到讯息的人都可以用A的公钥进行验章,便可确认讯息是由 A 发出来的了。
举例说明
A机要通信B机
A机
[santi@A ~]$ ssh-keygen -t rsa -P ”
-P表示密码,-P ” 就表示空密码,也可以不用-P参数,这样需要敲三次车回车,用-P就一次回车。
[santi@A ~]$ ls -a 显示隐藏文件夹
出现 .ssh 文件
文件夹里面出现两个文件 id_rsa和id_rsa.pub
将A的公钥复制传给B机
[santi@A ~] scp ~/.ssh/id_rsa.pub santi@B:~/.ssh/id_rsa.A
[santi@A ~]/.ssh$ls
id_rsa id_rsa.pub known_host #产生新的文件 known_host
对于B机需要把从A机复制的id_rsa.pub添加到.ssh/authorzied_keys文件里。
[santi@B ~]cat ~/.ssh/id_rsa.pub.A >>~/ .ssh/authorized_keys
则A机可以通信B机
检测
[santi@A ~]ssh B
[santi@B ~] 则成功。
若不成功则需要更改 authorized_keys 权限
chmod 600 ~/.ssh/authorized_keys
若是是配置一个master和多个slave
则需要每个节点产生公钥和私钥
ssh-keygen -t rsa
然后每个slave 将自己的rsa_pub传给master
master机将所有的公钥加到认证公钥authorized_keys中
cat ~/.ssh/id_rsa.pub* >> ~/.ssh/authorized_keys
然后将authorized_keys发送给每个slave则所有节点皆可以通信。
版权声明:所爱隔山海。 https://blog.csdn.net/tongxinzhazha/article/details/52388806