我正在尝试做类似的事情避免在 http_proxy 中使用纯文本密码但在 .wgetrc/.curlrc 配置文件内。无论出于何种原因,我通过命令行传递代理设置的运气并不好(即配置文件完全可靠)。
问题是我不希望我的代理密码以明文形式存在于系统上的任何位置(例如在我的 bash_history 中或硬编码到 rc 文件中)。是否有任何解决方法可以利用这些 rc 文件中的 bash 功能?理想情况下,我在 CLI 代理设置方面不会运气不佳,但我无法查明为什么会出现这种情况。
答案1
是否有任何解决方法可以利用这些 rc 文件中的 bash 功能?
不。这些是由程序读取的文件,遵循它们自己的语法规则。它们不是像 shell 脚本那样执行的脚本。
您可以使用 bash (或者更确切地说,任何其他可能更明智的编程语言)来完成从某些秘密存储中获取秘密的任务,并动态生成适当的设置文件,并将其输出到标准输出;然后将其作为临时文件传递给curl并获取,例如
# pass the config file through stdin
yourprogramhere | curl --config - https://tutorials.gnuradio.org
# OR
# pass the config file as temporary file, not in bash, but in modern shells
#!/usr/bin/zsh
curl --config =(yourprogramhere) https://tutorials.gnuradio.org
# OR
# pass the config file as pipe handle; works in bash, but might not work with programs that try to seek in their rc/config files
curl --config <(yourprogramhere) https://tutorials.gnuradio.org