密钥认证
概述
- 名字:密钥认证、免密码登录、双机互信
- 密钥认证是单向:客户端使用私钥证明身份,服务端通过公钥进行验证,服务端不需要使用私钥来返回认证信息
- 密钥认证用于无密码登录和安全的身份验证
- 应用场景:
- 服务要求使用密钥认证
- 手动书写批量管理脚本
SSH密钥认证流程
- 质询:随机生成的字符串
- 密钥对:
- 公钥:public key(一般以.pub结尾)
- 私钥:private keey
上手指南
角色 | 主机名 | ip |
管理节点 | m01 | 172.16.1.61 |
被管理节点 | nfs01 | 172.16.1.31 |
被管理节点 | web01 | 172.16.1.41 |
被管理节点 | backup | 172.16.1.7 |
基本检查
# ping ping 172.16.1.xxx # 22端口(sshd服务是否开启) nmap -p22 172.16.1.31 172.16.1.41 172.16.1.7
创建密钥对
# ssh-keygen -t rsa 创建的时候可以不加-t 通过rsa方法对数据进行加密
分发公钥及连接测试
# 分发公钥 ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.1.41 # 连接测试 ssh root@172.16.1.41 hostname -I # 温馨提示 # ssh-copy-id后公钥会被存放在对方服务端root用户.ssh下面 /root/.ssh/known_hosts # 第一次远程连接时会有yes/no的安全认证 ssh root@172.16.1.41 ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.1.41
自动化创建于分发密钥
- 阻碍:
- 创建密钥对时
- 分发公钥时:第一次远程连接时yes/no安全验证(yes后会将信息保存到.ssh/known_hosts)
- 分发公钥时:输入密码
自动化创建密钥
ssh-keygen -t rsa -f /root/.ssh/id_rsa -P ''[root@m01 ~]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -P '' -f 用于指定私钥的位置 -P(大写) 指定密码短语(设置为空)
自动化分发公钥
sshpass -p 'root' ssh-copy-id -i /root/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@172.16.1.7
- 阻碍:第一次远程连接时yes/no安全验证
# 温馨提示:第一次远程连接时yes/no安全验证, 输入yes后客户端会将远程主机的公钥信息存储在 ~/.ssh/known_hosts 文件中 # 解决思路:临时取消,连接的时候不检查主机信息 -o StrictHostKeyChecking=no 临时不检查主机信息 ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@172.16.1.41
- 阻碍:密码
# 安装ssh密码助手 yum install -y sshpass # 先检查是否需要yes/no安全验证 如果需要yes/no安全验证而没有验证,直接使用sshpass则执行失败 # sshpass -p 指定密码(sshpass适用于ssh、scp、ssh-copy-id等交互式命令) # sshpass -p 'your_password' ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.1.41 # sshpass -p 'your_password' ssh root@172.16.1.41
自动化创建与分发脚本
标签:批量,rsa,集群,ssh,172.16,第五篇,root,id,密钥 From: https://www.cnblogs.com/yuanxiaojiang/p/18591262