工作中,使用ansible等自动化运维工具实现服务器批量自动化运维管理,需要先解决管理端和被管理端的免密码登录,可以脚本实现ssh基于key的验证,代码如下:
#!/bin/bash
PASS=123456
USER=root
ssh-keygen -f '/root/.ssh/id_rsa' -P '' &> /dev/null
rpm -q expect &> /dev/null || yum install expect -y -q
while read IP;do
expect <<EOF
set timeout 20
spawn ssh-copy-id [email protected]$IP
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "$PASS\n" }
}
expect eof
EOF
done < hosts.txt
将需要部署的机器IP写入hosts.txt文件中,每行一个
原文地址:https://www.cnblogs.com/eddie1127/p/12024875.html
时间: 2024-11-05 18:50:54