在应用程序内设置密码

在应用程序内设置密码

我需要使用当前登录的用户凭据导出 RHEL 7 上的代理。

我可以通过手动添加来实现这一点.bashrc 或 .bash_profile。:

export http_proxy=http://username:[email protected]:6080
export https_proxy=http://username:[email protected]:6080

上面的方法效果很好。但我不想要这种方法,因为我们对用户名和密码进行硬编码,而且它不安全。

是否可以利用现有的/etc/影子文件作为导出代理的密码?

答案1

您可以将类似以下内容作为脚本放置在 /etc/profile.d/ 目录中:

#!/bin/bash
    if [ $SHLVL = 1 ]; then
    echo -n "Enter proxy password:"
    read -sr mypass
    export http_proxy="http://$USER:[email protected]:6080"
    export https_proxy=$http_proxy
    echo
fi

if [ $SHLVL = 1 ]将阻止脚本在生成子 shell 时运行,例如启动脚本进行日志记录时。

read -s将防止在输入密码时回显输入。

$USER是一个环境变量,即当前用户名。

最后一个echo只是打印一个换行符以获得下一行的下一个提示。

答案2

真正的问题是连接到代理时需要用户名/密码身份验证。无论如何,您在连接到代理时需要在某处设置用户名和密码。

这是有原因的代理 PAC 配置文件格式不包括密码验证。

在应用程序内设置密码

您需要在每个应用程序的基础上定义代理 URL,而不是在 bash 环境中设置代理 URL。例如,为了安装 Redhat 软件包,您可以在/etc/yum.conf或任何/etc/yum.repos.d/*.repo文件中定义代理。

同样,对于 Web 浏览器,请在浏览器设置中设置代理 URL。

代理链

运行不接受密码的本地代理,但当它连接到实际的上游代理时,您可以定义用户名和密码。

使用诸如代理登录自动化器

相关内容