当询问时将密码通过管道传递给应用程序

当询问时将密码通过管道传递给应用程序

应在 bash 脚本中完成以下操作:

curl --digest --user schmijos https://bitbucket.org/u/p/get/tip.zip -o tip.zip

如何自动提交密码卷曲当它要求的时候?由于我不想在任何日志文件中看到密码,所以我惯于请执行下列操作:

curl --digest --user schmijos:$password https://bitbucket.org/u/p/get/tip.zip -o tip.zip

答案1

使用empty:

安全存储密码(这是一种说法......)

$ echo password > pwd-file

启动进程empty。 (-L log在真实情况下你会省略。)

$ empty -f -i fifo1 -o fifo2 -L log curl -u user http://example.com

pwd-file发送to的输入管道的内容empty,该进程将其视为 itstdin/dev/tty

$ empty -s -c -o fifo1 < pwd-file

这是伪终端中发生的情况:

$ cat log
<<<Enter host password for user 'user':>>>password
<<<

答案2

Curl 可以读取密码~/.netrc。添加这样一行~/.netrc

machine bitbucket.org login schmijos password swordfish

并运行

curl --netrc --digest --user schmijos https://bitbucket.org/u/p/get/tip.zip -o tip

相关内容