【问题标题】:Expect echo password in clear text期望以明文形式回显密码
【发布时间】:2016-08-20 22:36:34
【问题描述】:

cygwin 中使用 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
生成 psftp unixftpsrvr
登录为:myID
使用键盘交互式身份验证。
输入您的 UDS
密码:Passw0rd

远程工作目录是 /home/myID
psftp>

密码以明文形式打印出来!!!

如果我直接使用 psftp 运行命令。这是输出:

$ psftp unixftpsrvr
登录为:myID
输入您的 UDS 密码:
远程工作目录是 /home/myID
psftp>

密码根本不显示。

这似乎是期望方面的更多问题。

我不关心期望脚本文件中的明文密码,我关心输出中的明文密码!

如何禁止密码明文显示?

【问题讨论】:

    标签: passwords cygwin expect psftp


    【解决方案1】:

    密码可能在 ECHO 关闭之前过早发送。所以尝试在expect "Password:" 之后添加sleep 1

    如果这不起作用,请尝试这样:

    expect "Password:"
    log_user 0; # disable logging to stdout
    send "password\r"
    log_user 1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-05
      • 2011-10-18
      • 2017-01-27
      • 2021-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多