密码学基础及ssh实现多节点间无密码访问

一、非对称加密算法

非对称加密算法

:该算法需要两个密钥:公开密钥和私有密钥。

公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
我对该算法进行简单概括就是如下: 
非对称加密有一对密钥,公钥和私钥。可以用公钥加密,也可以用私钥加密。
1,公钥和私钥成对出现
2,公开的密钥叫公钥,只有自己知道的叫私钥
3,用公钥加密的数据只有对应的私钥可以解密
4,用私钥加密的数据只有对应的公钥可以解密
5,如果可以用公钥解密,则必然是对应的私钥加的密
6,如果可以用私钥解密,则必然是对应的公钥加的密



DSA

(Digital Signature Algorithm) 是 Schnorr 和 ElGamal 签名算法的变种,被美国 NIST 作为 DSS (DigitalSignature Standard)。 DSA 是基于整数有限域离散对数难题的。

简单的说,这是一种更高级的验证方式,用作数字签名。不单单只有公钥、私钥,还有数字签名。私钥加密生成数字签名,公钥验证数据及签名,如果数据和签名不匹配则认为验证失败。数字签名的作用就是校验数据在传输过程中不被修改,数字签名,是单向加密的升级。

处理过程
在这里插入图片描述

(1) 使用消息摘要算法将发送数据加密生成数字摘要。
(2) 发送方用自己的私钥对摘要再加密,形成数字签名。
(3) 将原文和加密的摘要同时传给对方。
(4) 接受方用发送方的公钥对摘要解密,同时对收到的数据用消息摘要算法产生同一摘要。
(5) 将解密后的摘要和收到的数据在接收方重新加密产生的摘要相互对比,如果两者一致,则说明在传送过程中信息没有破坏和篡改。否则,则说明信息已经失去安全性和保密性。



RSA

加密算法是一种非对称加密算法,所谓非对称,就是指该算法加密和解密使用不同的密钥,即使用加密密钥进行加密、解密密钥进行解密。在RAS算法中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,由于无法计算出大数n的欧拉函数phi(N),所以不能根据PK计算出SK。

RSA的算法涉及三个参数,n、e1、e2。
其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。
e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)(q-1)互质;再选择e2,要(e2e1)mod((p-1)*(q-1))=1。(n及e1),(n及e2)就是密钥对。
RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1 mod n;B=A^e2 mod n;e1和e2可以互换使用,即:A=B^e2 mod n;B=A^e1 mod n;
在这里插入图片描述

数字证书
第三方机构来保证公钥的合法性,这个第三方机构就是 CA (Certificate Authority),证书中心。
CA 用自己的私钥对信息原文所有者发布的公钥和相关信息进行加密,得出的内容就是数字证书。
信息原文的所有者以后发布信息时,除了带上自己的签名,还带上数字证书,就可以保证信息不被篡改了。信息的接收者先用 CA给的公钥解出信息所有者的公钥,这样可以保证信息所有者的公钥是真正的公钥,然后就能通过该公钥证明数字签名是否真实了。



采用四个节点机组成集群进行环境搭建,每个节点机上安装Linux操作系统,本例子中Linux版本采用的是CentOS7(64位)。
为每个节点机分配好IP地址,本节点机使用的IP地址分别为:192.168.23.111、192.168.23.112、192.168.23.113、192.168.23.114,对应节点主机名为:node1、node2、node3、node4。若没有进行修改请用命令 vim /etc/hostname修改。

需要配置好网络、yum源及关闭防火墙和做好主机映射


主机映射需要在四个节点都做

[root@node1 ~]# vi /etc/hosts

在这里插入图片描述
最后重启一下网络,映射完成。

二、ssh使用

由于MPI并行程序需要在各节点间进行信息传递,所以必须实现所有节点两两之间能无密码访问。节点间的无密码访问是通过配置ssh证书认证来实现的。配置ssh是集群系统配置的常用操作,MPI、Hadoop等系统均需配置ssh。

1、创建用户

,在四台节点机分别创建用户mpi,uid=600,设置mpi用户无密码相互访问,密码都为123456。

[root@node1 ~]# useradd -u 600 mpi
[root@node1 ~]# passwd mpi
[root@node2 ~]# useradd -u 600 mpi
[root@node2 ~]# passwd mpi
[root@node3 ~]# useradd -u 600 mpi
[root@node3 ~]# passwd mpi
[root@node4 ~]# useradd -u 600 mpi
[root@node4 ~]# passwd mpi

2、生产证书

打开node1节点机,以用户mpi登录
使用ssh-keygen生成证书密钥,证书密钥有两种算法:dsa和rsa

[root@node1 ~]# su - mpi
[mpi@node1 ~]$ ssh-keygen -t dsa                             #生成证书
Generating public/private dsa key pair.
Enter file in which to save the key (/home/mpi/.ssh/id_dsa):
Created directory ‘/home/mpi/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/mpi/.ssh/id_dsa.
Your public key has been saved in /home/mpi/.ssh/id_dsa.pub.
The key fingerprint is:
SHA256:3WsSO527CEiB2GUFpzBSc130NcDLakkpBhEfAH04Cc4 mpi@node1
The key’s randomart image is:
±–[DSA 1024]----+
| …B+OX+oo…o |
| * O*+o. … . |
| . E o+. o… |
| .o.o.o |
| …Sooo. |
| . . ++ o |
| . …+ = |
| . = . |
| . o. |
±—[SHA256]-----+

3、使用ssh-copy-id分别拷贝证书公钥

到node1,node2,node3,node4节点机上

[mpi@node1 ~]$ ssh-copy-id -i .ssh/id_dsa.pub mpi@node1
[mpi@node1 ~]$ ssh-copy-id -i .ssh/id_dsa.pub mpi@node2
[mpi@node1 ~]$ ssh-copy-id -i .ssh/id_dsa.pub mpi@node3
[mpi@node1 ~]$ ssh-copy-id -i .ssh/id_dsa.pub mpi@node4

在这里插入图片描述

4、分别使用ssh登录

node1、node2、node3、node4测试,测试ssh无密码登录node1和node2

在这里插入图片描述

5、使用scp分别拷贝证书私钥

到node2,node3,node4节点机上,实现相互无密码登录
在这里插入图片描述

6、测试相互登录

在node2节点机上测试ssh登录node3节点机,第一次等需要输入“yes”,其他测试相同
在这里插入图片描述

加密算法DSA、RSA等详细参考:
https://blog.csdn.net/u014294681/article/details/86705999
https://blog.csdn.net/dawn_after_dark/article/details/54236075
https://www.cnblogs.com/xiaoyaodijun/p/6549148.html
https://blog.csdn.net/a745233700/article/details/102341542

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

侬本多情。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值