expect ssh 自动输入登入密码错误,就一直卡在输入密码里没反应
本帖最后由 515863429 于 2017-06-22 11:33 编辑#!/usr/bin/expect -f
set host
set pwd
#set cmd
set timeout -1
#log_user 0
spawn ssh -t $host
expect {
"*yes/no*" {send "yes\r";exp_continue}
"*assword*" {send"$pwd\r";exp_continue}
}
expect "*$*"
send "sudo su -\r"
expect "*#*"
send "hostname\r"
#log_user 1
expect "*#*"
send "exit\r"
log_user 0
expect "*$*"
send "exit\r"
log_user 0
expect eof
我想实现密码错误能自动输入三次后往下走,或者直接跳过也行,求帮忙。
一直卡在
spawn ssh -t xx.xx.xx.xx sudo cat /etc/shadow
aiuap@xx.xx.xx.xx's password:
Permission denied, please try again.
aiuap@xx.xx.xx.xx's password:
没人帮忙么:dizzy: 自己手工跑一遍...
root@127.0.0.1's password:
Permission denied, please try again.
root@127.0.0.1's password:
Permission denied, please try again.
root@127.0.0.1's password:
Permission denied (publickey,password).
#
sshpass不是更好用,或ssh-copy-id公钥登录。
回复 3# jason680
后面的命令是接sudo 按上面的运行后得出以下结果
spawn ssh -t 127.0.0.1
aiuap@127.0.0.1's password:
Permission denied, please try again.
aiuap@127.0.0.1's password:
Permission denied, please try again.
aiuap@127.0.0.1's password:
Permission denied (publickey,password,keyboard-interactive).
expect: spawn id exp4 not open
while executing
"expect "*$*" "
(file "sshsudoroot1.exp" line 15)
回复 3# jason680
后面的命令是接sudo 按上面的运行后得出以下结果
spawn ssh -t 127.0.0.1
aiuap@127.0.0.1's password:
Permission denied, please try again.
aiuap@127.0.0.1's password:
Permission denied, please try again.
aiuap@127.0.0.1's password:
Permission denied (publickey,password,keyboard-interactive).
expect: spawn id exp4 not open
while executing
"expect "*$*" "
(file "sshsudoroot1.exp" line 15)
有帖子写过遇到这样的情况,但是我运行还是识别不到
spawn ssh10.10.10.1
expect {
"\[#$\]" {send "\r" } ### 假如有了ssh 公钥之类的,直接回车。当然普通用户下边还可能需要sudo,自己处理一下吧。
"not know" {send_user "";exit}
"(yes/no)?" {send "yes\r";exp_continue} #continue的意义,靠猜测也能差不多知道了吧?可以Man expect
"password:" {send"$pwd\r"}
"Permission denied, please try again." {
send_user ""
exit}
} 本帖最后由 yexingqi 于 2022-01-17 17:15 编辑
谢谢分享!
页:
[1]