首先:sh安装expect,根据INSTALL,README,要装expect现状tcl(另一个包),http://www.tcl.tk/software/tcltk/download.html,tcl的话解压出来我直接进入的unix目录下,因为macosx下README说mac下当成unix装也没啥事,安装没什么注意的,./configure make makeinstall is enough。装完tcl记得看下安装的路径,我的是在/usr/local/lib/。
然后:再下载expect包,https://sourceforge.net/projects/expect/files/Expect/5.45/。这里解压之后放到tcl一起,我的话即/usr/local/lib/,然后make时候make expect说是可以只装expect相关组件,make之后install了。
然后我们就具备了expect的主要功能了
which expect可以查看 expect安装位置
然后:在一个文件夹中 touch login.sh
写入:
#!/usr/bin/expect -f
set user xxx
set host 172.19.30.xxx
set timeout -1
set password xxx
spawn ssh $user@$host
expect "*assword:*"
send "$password\r"
interact
然后修改文件权限:chmod +x logon.sh
最后:expect login.sh
即可免密码登陆远程机器
当然最后在profile中配置alias更好用