shell脚本通过expect实现自动单边无密登录

Posted 扶艾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本通过expect实现自动单边无密登录相关的知识,希望对你有一定的参考价值。

最近项目需要实现单边无密登录,去网上搜索了下相关文章,实践之后发现几乎都不能用。于是结合expect的使用方法自行写了一个,通过验证可用。现在总结在这供需要的朋友参考。

代码如下:

1EXPECT=/usr/bin/expect 


  
    
    
  
 1$EXPECT <<EOF  
2spawn ssh-keygen -t rsa  
3expect "*ssh/id_rsa*" {  
4    send -- "\r"  
5    expect "*for no passphrase*"  
6    send -- "\r"  
7    expect "*passphrase again*"  
8    send -- "\r"  
9    exp_continue  
10}  
11
12EOF  
13
14iplist=`cat /root/ip.list`  
15for ip in $iplist  
16do  
17    $EXPECT <<EOF  
18    spawn ssh-copy-id root@$ip  
19    expect "*(yes/no)?*" {  
20        send -- "yes\r"  
21        expect "*?assword:*"  
22        send -- "$PASSWD\r"  
23    } "*?assword:*" {  
24        send -- "$PASSWD\r"  
25        exp_continue  
26    }  
27EOF  
28done  


以上是关于shell脚本通过expect实现自动单边无密登录的主要内容,如果未能解决你的问题,请参考以下文章

shell分发系统

Linux编写Shell脚本利用expect实现免问答ssh登录服务器

shell脚本之通过发送带 字符串或expect脚本实现交互输入自动化

telnet登录路由器启动服务的shell脚本

图文教程自动登录expect脚本实例

linux通过shell脚本实现telnet交互式自动化