Bash ssh上的expect/passwd脚本:身份验证令牌操作错误

Bash ssh上的expect/passwd脚本:身份验证令牌操作错误,bash,authentication,expect,passwd,Bash,Authentication,Expect,Passwd,我想使用ssh创建密码更改脚本。所以我使用expect和bash来运行我的脚本 这是我代码的一部分: 1 #!/usr/bin/expect -f 1 2 set user [lindex $argv 0] 3 set host [lindex $argv 1] 4 set password [lindex $argv 2] 5 set newpassword [lindex $argv 3] 6 7 spawn ssh $user@$host passwd

我想使用ssh创建密码更改脚本。所以我使用expect和bash来运行我的脚本

这是我代码的一部分:

1   #!/usr/bin/expect -f
  1
  2 set user [lindex $argv 0]
  3 set host [lindex $argv 1]
  4 set password [lindex $argv 2]
  5 set newpassword [lindex $argv 3]
  6
  7 spawn ssh $user@$host passwd
  8 expect {
  9     "*?password*" {
 10       sleep 1
 11       send "$password\n"
 12       exp_continue
 13     }
 14     "*?(current) UNIX password*" {
 16       sleep 1
 17       send "$password\r"
 18       exp_continue
 19     }
 20     "*?New password*" {
 21       sleep 1
 22       send "$newpassword\r"
 23       exp_continue
 24     }
 25     "*?new UNIX password*" {
 26       sleep 1
 27       send "$newpassword\r"
 28       exp_continue
 29     }
 30     "*?password updated successfully*" {
 31       exit 0
 32     }
 33     "*?Permission denied*" {
 34       exit 1
 35     }
 36     eof {
 37     }
 38 }
不幸的是,当我运行它时,我得到了错误:
passwd:Authentication token manipulation error

spawn ssh *some user*@*some server* passwd

(current) UNIX password: *some password in plain text*
passwd: Authentication token manipulation error
Changing password for user *some user*.
Changing password for *some user*.

你知道我做错了什么吗?

你不是在谷歌上搜索“passwd:Authentication token manipulation error”哦。。。相信我,我是!我可以手动更改密码,但它与我的脚本不兼容。你不能在谷歌上搜索“passwd:Authentication token manipulation error”哦。。。相信我,我是!我可以手动更改密码,但它与我的脚本不兼容。