一台机器连接到其他机器不需要密码
流程就不画图了:一般是管理机使用密钥认证,管理机创建公钥和私钥,将公钥发送给被管理机。
然后要连接的时候发出请求,被管理机发一串数据传给管理机,管理机使用私钥加密再发送给被管理机,管理机器用公钥解密。
校验通过,向管理机建立连接。
使用
1.创建密钥对ssh-keygen2.分发公钥ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.313.测试ssh root@10.0.0.31 hostname
一键化密钥认证
#!/bin/bash#author: Rdymy#desc 一键自动化创建和分发公钥ip_list="10.0.0.7 10.0.0.31 10.0.0.41"ssh_root_pass="1"echo '--------------------------------------------'echo '1. 创建 key'echo '--------------------------------------------'# 创建密钥对并指定私钥路径和使用私钥时的密码短语ssh-keygen -f ~/.ssh/id_rsa -P ''echo '--------------------------------------------'echo '2. 分发 pub key'echo '--------------------------------------------'for ip in $ip_listdo# ssh填密码的工具sshpass,需yum下载 指定公钥地址 暂时停止主机验证 连接的ipsshpass -p$ssh_root_pass ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@$ipdone
检查脚本(了解)
#!/bin/bash
#author: oldboy lidao996
#desc 批量检查脚本
ip_list="10.0.0.7 10.0.0.31 10.0.0.41"
echo '--------------------------------------------'
echo '批量执行命令'
echo '--------------------------------------------'
for ip in $ip_list
do
ssh root@$ip $@
done
排错
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:zFS1I2ks6YHkKywUNBRiGSVUtfadGim6YBRbY0/xBrw.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:2
ECDSA host key for web01 has changed and you have requested strict checking.
Host key verification failed.
## 删除对应ip的在known_hosts相关信息
## vim /root/.ssh/known_hosts
