马哥博客作业第八周

1、对称加密过程由哪三部分组成
第一步:发送方加密
数字签名:用自己的私钥将hash过的数据摘要进行加密
数据对称加密:用生成的对称加密密钥将数据和数字签名加密
对称密钥加密:用对方的公钥将对称密钥进行加密

第二步:传输
基于网络层和数据链路层将加密包传输至接受端

第三步:接收方解密
对称密钥解密:用自己的私钥将对称密钥进行解密
数据对称解密:用解密出来的对称密钥将数据和数字签名解密
验证数据来源:将数据部分进行hash与用对方公钥解密出来的数据摘要进行对比,验证数据来源

2、使用 openssl 中的 aes 对称加密算法对文件 file.txt 进行加密,然后解密
openssl enc -e -aes-256-cbc -in file.txt -out file.enc
openssl enc -d -aes-256-cbc -in file.enc -out file.txt

3、搭建CA和申请证书
搭建CA:
创建需要的目录和文件
mkdir -pv /etc/pki/CA/{certs,crl,newcerts,private}
cd /etc/pki/CA
touch index.txt
echo 01 > serial
生成私钥
(umask 077; openssl genrsa -out private/cakey.pem 2048)
生成证书请求并自签
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3600 -out /etc/pki/CA/cacert.pem

客户机申请证书:
客户机生成私钥
(umask 077 ; openssl genrsa -out httpd.key 2048)
客户机生成证书请求
openssl req -new -key /root/httpd.key -days 365 -out /root/httpd.csr
客户机将证书请求发送给CA
scp httpd.csr root@10.0.0.201:/tmp
CA给客户机颁发证书
openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 356
CA将颁发好的证书发回给客户机
scp certs/10.0.0.205httpd.pem root@10.0.0.205:/tmp


4、使用脚本实现多个用户key验证免密登录
#将本机的ssh_config文件中的第一次登录询问关闭
sed -i.bak '/StrictHostKeyChecking/s/.*/StrictHostKeyChecking no/' /etc/ssh/ssh_config
#判断id_rsa是否存在,存在则跳过,不存在则生成
if [ ! -e /root/.ssh/id_rsa ]; then
ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa &> /dev/null && echo "ssh key is created"
fi
#判断authorized_keys文件是否存在,存在则跳过,不存在则生成
if [ ! -e /root/.ssh/authorized_keys ]; then
expect &>/dev/null <<EOF
set timeout 20
spawn ssh-copy-id `hostname -I`
expect {
"password" { send "123456\n" }
}
expect eof
EOF
fi
#用while read读入host.txt的每一行IP地址
while read IP ;do
#先将远程主机的第一次询问关闭,再将本地的.ssh文件夹拷贝到远程主机的/root/目录下
expect &>/dev/null <<EOF
set timeout 20
spawn ssh $IP "sed -i.bak '/StrictHostKeyChecking/s/.*/#StrictHostKeyChecking no/' /etc/ssh/ssh_config"
spawn scp -rp /root/.ssh $IP:/root/
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "123456\n" }
}
expect eof
EOF
echo "$IP is ready"
done <host.txt

posted @ 2020-07-20 17:48  金金金丶  阅读(111)  评论(0)    收藏  举报