利用expect实现自动登录服务器
1、建立文件abbr,用以保存目标服务器简称与全称的对应关系,例如:
yang@fengtao ~ $ more abbr #product pp1 p1.prodcut1.server.com pp2 p2.prodcut1.server.com pp3 p3.prodcut1.server.com pp4 p4.prodcut1.server.com
2、建立可执行文件autologin.sh,例如:
yang@fengtao ~ $ more autologin.sh #!/usr/bin/expect set target [lindex $argv 0] spawn ssh $target expect { "Enter passphrase for key '/home/q/home/fengtao.yang/.ssh/id_rsa':" { send "yourpassword\n" } } interact
其中,你自己需要替换的有以下两处:
Enter passphrase for key '/home/q/home/fengtao.yang/.ssh/id_rsa': 这里需要替换为提示你输入密码的提示语
yourpassword 你登录服务器需要的密码
3、建立可执行文件lg,用以接收参数,然后调用autologin.sh以实现自动登录:
yang@fengtao ~ $ more lg #!/bin/bash target=$(grep $1 abbr | awk '{print $2}') echo $target ./autologin.sh $target
4、进行登录:
yang@fengtao ~ $ ./lg pp1