首先: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 pwd.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 pwd.sh
最后:expect pwd.sh
即可免密码登陆远程机器
当然最后在profile中配置alias更好用;
====================
在profile中配置alias:
1. cd ~
2.在家目录下创建 .bash_profile 文件(若已存在则直接打开)
3.在文件中添加 上面文件的路径(/Users/mac/wwwroot/pwd.sh):
alias login="/Users/mac/wwwroot/pwd.sh"
4. 添加权限:chmod 777 .bash_profile
5.执行 login 并enter 即可实现登录 。