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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。