利用expect实现自动登陆服务器

一、创建文件abbr,用以保存目标服务器简称与全称的对应关系,例如:bash

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

二、创建可执行文件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

其中,你本身须要替换的有如下两处:ssh

Enter passphrase for key '/home/q/home/fengtao.yang/.ssh/id_rsa':     这里须要替换为提示你输入密码的提示语
yourpassword            你登陆服务器须要的密码



三、创建可执行文件lg,用以接收参数,而后调用autologin.sh以实现自动登陆:spa

yang@fengtao ~ $  more lg
#!/bin/bash

target=$(grep $1 abbr | awk '{print $2}')
echo $target

./autologin.sh $target

四、进行登陆:code

yang@fengtao ~ $  ./lg pp1
相关文章
相关标签/搜索