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实现自动单边无密登录的主要内容,如果未能解决你的问题,请参考以下文章
Linux编写Shell脚本利用expect实现免问答ssh登录服务器