You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需明文存储密码,通过带认证代理服务器使用pip

Red Hat 7下带认证代理使用pip的安全方案

以下几种方案可避免明文存储代理密码:

1. 利用系统密钥环临时获取密码

Red Hat 7可借助gnome-keyring这类系统密钥环工具存储代理密码,通过脚本临时读取并设置环境变量,执行完pip后立即清空变量:

  • 先将密码存入密钥环:
    secret-tool store --label='企业代理密码' proxy server 你的代理地址 proxy username 你的用户名
    
  • 编写调用pip的脚本(比如pip_with_proxy.sh):
    #!/bin/bash
    PROXY_PASS=$(secret-tool lookup proxy server 你的代理地址 proxy username 你的用户名)
    export HTTP_PROXY=http://你的用户名:$PROXY_PASS@你的代理地址:端口
    export HTTPS_PROXY=$HTTP_PROXY
    pip "$@"
    unset HTTP_PROXY HTTPS_PROXY
    
  • 赋予脚本执行权限:chmod +x pip_with_proxy.sh,之后用它替代pip:./pip_with_proxy.sh install 包名

2. 交互式输入密码(适合偶尔使用)

直接在pip命令中指定带用户名的代理,不写密码,pip会交互式提示输入:

pip install 包名 --proxy http://你的用户名@你的代理地址:端口

输入的密码不会显示在终端,也不会留存到命令历史或文件中,每次执行需手动输入。

3. 用cntlm中转代理(推荐频繁使用场景)

cntlm可以将带认证的企业代理转为本地无认证代理,且用哈希存储认证信息,避免明文:

  • 安装cntlm:
    sudo yum install cntlm
    
  • 编辑/etc/cntlm.conf,配置代理地址、用户名、域名,然后生成密码哈希:
    cntlm -H -u 你的用户名 -d 你的域名 -p
    
    输入密码后会生成NTLMv2哈希,将其填入配置文件的PassNTLMv2字段,删除所有明文密码相关配置。
  • 启动并设置开机自启:
    sudo systemctl start cntlm
    sudo systemctl enable cntlm
    
  • 配置pip使用本地代理,编辑~/.config/pip/pip.conf:
    [global]
    proxy = http://127.0.0.1:3128
    

4. 改用企业内部PyPI镜像

如果企业有内部PyPI镜像(已同步外部包),直接配置pip使用内部源,无需走外部代理:
编辑~/.config/pip/pip.conf:

[global]
index-url = http://企业内部PyPI地址/simple/
trusted-host = 企业内部PyPI地址

内容的提问来源于stack exchange,提问作者Welgriv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 10:09:02