明文中的回声密码

时间:2016-08-19 16:24:41

标签: passwords cygwin expect psftp

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

     

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

密码打印为明文!!!

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

  

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

根本不显示密码。

这似乎是期待方面的问题。

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

如何以明文形式显示密码?

1 个答案:

答案 0 :(得分:0)

在关闭ECHO之前,密码可能会过早发送。因此,请尝试在sleep 1之后添加expect "Password:"

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

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