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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。