Bash ssh上的expect/passwd脚本:身份验证令牌操作错误
我想使用ssh创建密码更改脚本。所以我使用expect和bash来运行我的脚本 这是我代码的一部分: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
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”哦。。。相信我,我是!我可以手动更改密码,但它与我的脚本不兼容。