使用expect远程登陆不了

回复 收藏
脚本如下:#!/usr/bin/expect
set user "root"
set passwd "gg&*123"
spawn ssh $user@192.168.0.12
expect "root@192.168.0.12's password:"
send "$passwd\r"

直接执行脚本
./1.expect

出现如下提示:
[root@test1 ~]# ./1.expect
spawn ssh root@192.168.0.12
root@192.168.0.12's password: [root@test1 ~]#

没起作用,跪求原因。。。。。
2016-04-24 23:06 举报
已邀请:
0

乐橙306

赞同来自:

看完你就懂了

http://www.linuser.com/thread-1604-1-1.html
0

tIl

赞同来自:

乐橙306 发表于 2016-4-24 23:15
看完你就懂了

http://www.linuser.com/thread-1604-1-1.html

还是不行。。。
0

乐橙306

赞同来自:

tIl 发表于 2016-4-24 23:34
还是不行。。。

智商感人
0

tIl

赞同来自:


直接点就行了,绕那么大圈子
0

tIl

赞同来自:

tIl 发表于 2016-4-25 12:40
直接点就行了,绕那么大圈子

脚本从阿铭课本上复制的
0

tIl

赞同来自:


http://www.apelearn.com/bbs/fo ... D8113  看完这个你就懂你智商是怎么样了。
0

tIl

赞同来自:

tIl 发表于 2016-4-25 12:47
http://www.apelearn.com/bbs/forum.php?mod=viewthread&tid=8113  看完这个你就懂你智商是怎么样了。

那这个脚本你觉得哪里有问题,每个人环境不一样

#!/usr/bin/expect
set timeout -1
set user "root"
set passwd "shit@123"
spawn ssh $user@192.168.0.111
expect {
"yes/no" {send "yes\r";exp_continue}
"assword:"{send"$passwd\r"}
}
interact
0

tIl

赞同来自:

把脚本修改成

#!/usr/bin/expect
set user "root"
set passwd "shit@123"
spawn ssh $user@192.168.0.111
expect {
"yes/no" {send "yes\r";exp_continue}
"password:" {send "$passwd\r"}
}
expect "#"
interact

可以登陆了  空格原因初步判断
0

tIl

赞同来自:

感谢各位指导。
0

backham1990

赞同来自:

本帖最后由 backham1990 于 2016-5-14 09:35 编辑

expect是交互式自动化脚本

expect  判断输出  然后 执行 send动作

#!/usr/bin/expect –f  
set username root
set ipaddr 1.2.3.4
set timeout -1
spawn ssh $username@$ipaddr
expect "password: “              #屏幕上出现password   就做下一步动作  send your password
send "1234567890\r“
interact


另外 脚本名是这样  name.exp   
运行脚本  expect name.exp



回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: