expect 批量自动部署ssh 免密登陆 之 二
Posted nb-blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了expect 批量自动部署ssh 免密登陆 之 二相关的知识,希望对你有一定的参考价值。
#!/usr/bin/expect -f ########################################## hutu #Push the id.pas.pub public key to the target server through the SSH service to implement secret-free login. #Define an iplist Create an iplist file in the current directory. The content format is: User Password IPaddress Port #parameter: 1.user # 2.password # 3.ip # 4.Por ########################################## spawn ssh-keygen -t rsa expect { "*file in which to save the key*" { send " " send_user "/root/.ssh " exp_continue "*Overwrite (y/n)*"{ send "n " } } "*Enter passphrase*" { send " " exp_continue } "*Enter same passphrase again*" { send " " exp_continue } } set ip_file [open ./iplist r] while {[gets $ip_file line] >= 0} { set user [lindex $line 0] set password [lindex $line 1] set ip [lindex $line 2] set port [lindex $line 3] spawn ping ${ip} -w 2 expect { -nocase -re "100% packet loss" { send_error "Ping ${ip} is unreachable, Please check the IP address. " exit 1 } } spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $user@$ip expect { #first connect, no public key in ~/.ssh/known_hosts "Are you sure you want to continue connecting (yes/no)?" { send "yes " expect "password:" send "$password " } #already has public key in ~/.ssh/known_hosts "password:" { send "$password " } } puts "User: $user, Password: xxxx, IP: $ip, Port: $port " } close $ip_file
以上是关于expect 批量自动部署ssh 免密登陆 之 二的主要内容,如果未能解决你的问题,请参考以下文章