linux无秘钥登录执行命令
方法1、利用linux中expect模块
(1)下载expect
yum install expect -y
(2)保持交互的expect编写
vi expect.sh
#!/bin/expect
spawn ssh 用户名@ip
#让expect处理该会话,执行spawn之后,之后遇到的交互内容都由expect继续
#下面是提前输入了可能会遇到的交互的内容以及相应的应答方式
expect {
"预期出现的关键字" { send "对应的应答方式\r"; exp_continue }
#遇到预期出现的关键字,然后就执行对应的应答方式,
#\r代表回车
#而exp_continue表示没有遇到的话,继续向下执行
"预期出现的关键字1" { send "对应的应答方式2\r"};
}
interact #表示让会话保留在对方那边
#因为是ssh连接,所以要保持连接就要将会话停止而不是退出
案例1:
执行脚本命令:
expect expect.sh
如果不保持交互,则用expect eof结束
Spawn命令就是用来启动新的进程的,Spawn后send和expect命令都是和spawn打开的进程进行交互。
关于expect好文章:
https://www.jianshu.com/p/0194cbd70d39网络上的链接