如何在不以明文形式提供密码的情况下指定系统范围的代理?

如何在不以明文形式提供密码的情况下指定系统范围的代理?

我必须对所有互联网流量使用代理,目前我在 /etc/environment 中指定了这样的代理:

http_proxy=http://jsj:[email protected]:8080
https_proxy=http://jsj:[email protected]:8080
ftp_proxy=http://jsj:[email protected]:8080
no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
HTTP_PROXY=http://jsj:[email protected]:8080
HTTPS_PROXY=http://jsj:[email protected]:8080
FTP_PROXY=http://jsj:[email protected]:8080
NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"

我的密码是纯文本的,因为除了我的浏览器之外,没有任何提示输入密码并且连接失败。

如何解决必须以明文形式指定密码的问题?

答案1

如果您放入代理设置,/etc/environment则系统上运行的每个进程都可以访问密码。

如果您只需要用户的代理设置,请将设置放入登录时读取的文件中,通常是~/.profile.如果您不希望密码被窃取磁盘、加密您的主目录或从密码存储中读回的人读取 - 请参阅避免在 http_proxy 中使用纯文本密码。您运行的所有应用程序仍然可以读取该密码。

或者,如果您想更多地隐藏密码,您可以在本地运行代理,并让它使用您的工作代理作为上游代理。然后,只有您自己的代理需要拥有上游代理的凭据。小代理应该是一个不错的选择;它很小,支持上游代理,并且支持 HTTPS,但不支持 FTP。密码需要在配置文件中;如果您想保护它免受磁盘窃贼的侵害,请将其放在加密卷上。

相关内容