期望以明文形式回显密码
Expect echo password in clear text
在 cygwin.[=13= 中使用 bash/expect 自动化 psftp ]
我有一个非常小的脚本文件 yftp.exp,代码为:
#!/usr/bin/expect -f
spawn psftp unixftpsrvr
expect "login as: "
send "myID\r"
expect "Password:"
send "Passw0rd\r"
expect "psftp>"
输出:
$ ./yftp.exp
spawn psftp unixftpsrvr
login as: myID
Using keyboard-interactive authentication.
Enter your UDS
Password: Passw0rd
Remote working directory is /home/myID
psftp>
密码以明文形式打印出来!!!
如果我运行直接用psftp命令。这是输出:
$ psftp unixftpsrvr
login as: myID
Enter your UDS Password:
Remote working directory is /home/myID
psftp>
密码根本不显示。
这似乎是预期方面的问题。
我不关心 expect 脚本文件中的明文密码,我关心输出中的明文密码!
如何禁止明文显示密码?
密码可能在 ECHO 关闭之前过早发送。所以尝试在 expect "Password:"
.
之后添加 sleep 1
如果这不起作用,请尝试这样:
expect "Password:"
log_user 0; # disable logging to stdout
send "password\r"
log_user 1
在 cygwin.[=13= 中使用 bash/expect 自动化 psftp ]
我有一个非常小的脚本文件 yftp.exp,代码为:
#!/usr/bin/expect -f
spawn psftp unixftpsrvr
expect "login as: "
send "myID\r"
expect "Password:"
send "Passw0rd\r"
expect "psftp>"
输出:
$ ./yftp.exp
spawn psftp unixftpsrvr
login as: myID
Using keyboard-interactive authentication.
Enter your UDS
Password: Passw0rdRemote working directory is /home/myID
psftp>
密码以明文形式打印出来!!!
如果我运行直接用psftp命令。这是输出:
$ psftp unixftpsrvr
login as: myID
Enter your UDS Password:
Remote working directory is /home/myID
psftp>
密码根本不显示。
这似乎是预期方面的问题。
我不关心 expect 脚本文件中的明文密码,我关心输出中的明文密码!
如何禁止明文显示密码?
密码可能在 ECHO 关闭之前过早发送。所以尝试在 expect "Password:"
.
sleep 1
如果这不起作用,请尝试这样:
expect "Password:"
log_user 0; # disable logging to stdout
send "password\r"
log_user 1