515863429 发表于 2017-06-12 12:36

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:

515863429 发表于 2017-06-21 17:09

没人帮忙么:dizzy:

jason680 发表于 2017-06-21 18:14

自己手工跑一遍...

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).
#

pzghost 发表于 2017-06-21 20:54

sshpass不是更好用,或ssh-copy-id公钥登录。

515863429 发表于 2017-06-22 11:35

回复 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)

515863429 发表于 2017-06-22 11:35

回复 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)


515863429 发表于 2017-06-22 17:28

有帖子写过遇到这样的情况,但是我运行还是识别不到
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 16:57

本帖最后由 yexingqi 于 2022-01-17 17:15 编辑

谢谢分享!
页: [1]
查看完整版本: expect ssh 自动输入登入密码错误,就一直卡在输入密码里没反应