expect -c "
set timeout -1;
spawn ssh root@192.168.6.132;
expect {
*(yes/no)* {send yes\r ;exp_continue;}
*password* {send 123456\r ;exp_continue;}
eof {exit 0 }
}";
通过expect工具,shell在while循环中完成服务期间的免密登录一键话脚本
1.前提要安装expect包
2.代码如下:
#!/bin/sh
#主服务器密码
password=123456
while read hostname ; do
expect -c "
set timeout -1;
spawn ssh-copy-id ${hostname} ;
expect {
"*password:*" {send -- ${password}\r ;exp_continue;}
"*\(yes/no\)*" {send -- yes\r ;exp_continue;}
eof {exit 0;}
}"
echo "hosts:${hostname} done."
#ipconf.cfg 中存放要与主服务器要免密登录的用户的ip 例如: root@1921.68.245.134 每一行的格式与该例相同
done < ipconf.cfg
ifconf.cfg示例:
root@192.168.6.132
root@192.168.6.133


售后响应及时
7×24小时客服热线
数据备份
更安全、更高效、更稳定
价格公道精准
项目经理精准报价不弄虚作假
合作无风险
重合同讲信誉,无效全额退款