当前位置:  开发笔记 > 运维 > 正文

在Linux/UNIX上的纯文本文件中隐藏网络代理密码

如何解决《在Linux/UNIX上的纯文本文件中隐藏网络代理密码》经验,为你挑选了2个好方法。

通常在大型网络中,计算机需要在经过身份验证的代理后面运行 - 与外界的任何连接都需要用户名/密码,这通常是用户用来登录电子邮件,工作站等的密码.

这意味着必须把在网络的密码apt.conf文件,以及典型的http_proxy, ftp_proxyhttps_proxy在定义的环境变量~/.profile

我意识到apt.conf你可以设置chmod 600(默认情况下它不是Ubuntu/Debian!)但是在我们的系统上有人需要root priveleges.

我也意识到从技术上来说无法从具有root访问权限的人那里获取密码,但是我想知道是否有办法模糊密码以防止意外发现.Windows以管理员身份运行,但以某种方式存储网络密码(可能存储在以某种方式遮盖的注册表深处),因此在典型使用中,您不会在纯文本中偶然发现它

我从前几天开始只问,在比较各系统的配置文件时,我完全不小心以这种方式发现了别人的密码.

@monjardin - 公共密钥认证不是这个网络的替代品我害怕.此外,我怀疑大多数命令行工具都支持它.

@Neall - 我不介意其他用户具有Web访问权限,他们可以使用我的凭据访问Web,我只是不希望它们以纯文本形式出现在我的密码中.



1> lumpidu..:

使用以下方法,您永远不必以纯文本格式保存代理密码.只要您需要http/https/ftp访问权限,您就必须以交互方式输入密码:

使用openssl将纯文本代理密码加密到文件中,例如使用AES256加密:

openssl enc -aes-256-cbc -in pw.txt -out pw.bin

使用(不同的)密码来保护编码文件

删除纯文本pw.txt

在例如〜/ .alias中创建一个别名来设置你的http_proxy/https_proxy/ftp_proxy环境变量(为$ USER/proxy/$ PORT设置合适的值)

别名myproxy ='PW =`openssl aes-256-cbc -d -in pw.bin`; PROXY = "HTTP:// $ USER:$ @ PW代理:$ PORT"; export http_proxy = $ PROXY; export https_proxy = $ PROXY; export ftp_proxy = $ PROXY'

你应该将这个文件发送到普通的shell环境中(在某些系统上这是自动完成的)

输入'myproxy'并输入用于加密文件的openssl密码

完成.

注意:在shell会话期间,密码在用户环境中可用(并且可读).如果要在使用后从环境中清除它,可以使用另一个别名:

别名clearproxy ='export http_proxy =; export https_proxy =; export ftp_proxy ='


请注意,您可以在"myproxy"中使用`read -s PW`来获得类似的结果(只需在每次需要时从命令行读取密码)

2> leon22..:

我做了一个修改后的解决方案:

编辑/etc/bash.bashrc并添加以下行:

alias myproxy='read -p "Username: " USER;read -s -p "Password: " PW
PROXY="$USER:$PW@proxy.com:80";
export http_proxy=http://$PROXY;export Proxy=$http_proxy;export https_proxy=https://$PROXY;export ftp_proxy=ftp://$PROXY'

从下一次登录输入myproxy并输入您的用户名/密码组合!现在与sudo -E

-E,--preserve-env向安全策略指示用户希望保留其现有环境变量。

例如 sudo -E apt-get update

备注:代理设置仅在Shell会话期间有效

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有