shell腳本通過expect實現自動單邊無密登錄

最近項目需要實現單邊無密登錄,去網上搜索了下相關文章,實踐之後發現幾乎都不能用。於是結合expect的使用方法自行寫了一個,通過驗證可用。現在總結在這供需要的朋友參考。

代碼如下:

EXPECT=/usr/bin/expect
$EXPECT <<EOF
spawn ssh-keygen -t rsa
expect "*ssh/id_rsa*" {
    send -- "\r"
    expect "*for no passphrase*"
    send -- "\r"
    expect "*passphrase again*"
    send -- "\r"
    exp_continue
}

EOF

iplist=`cat /root/ip.list`
for ip in $iplist
do
    $EXPECT <<EOF
    spawn ssh-copy-id root@$ip
    expect "*(yes/no)?*" {
        send -- "yes\r"
        expect "*?assword:*"
        send -- "$PASSWD\r"
    } "*?assword:*" {
        send -- "$PASSWD\r"
        exp_continue
    }
EOF
done
更多精彩文章,請搜索微信公衆號“扶艾”。我們定期分享OpenStack相關技術文章,在這裏,只有純乾貨。 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章