【问题标题】:Securely pass credentials to conda to access corporate proxy channels安全地将凭据传递给 conda 以访问公司代理通道
【发布时间】:2020-03-13 14:26:16
【问题描述】:

不确定这是否真的属于 SO,如果有,请指出更合适的社区...

我正在尝试通过 Nexus OSS 托管的公司代理从 Windows 10 工作站访问 conda 存储库。连接工作正常,但需要用户将其凭据存储在 .condarc 文件中:

channels
 - https://<user>:<password>@<my_corp_proxy>/<repo1>/
 - https://<user>:<password>@<my_corp_proxy>/<repo2>/

密码不仅未加密存储在文件中:每当出现错误时都会提示用户,并且以一种更棘手的方式,它还存储在.json文件中,报告环境中的包下载conda-meta 目录。这是conda 中的known issue

我感到非常对必须将我的密码公开存储感到不舒服,尤其是当我们使用 LDAP 身份验证时。 我正在寻找一种让 conda 以更安全的方式检索凭据的方法,但直到现在,我在互联网上进行了大量研究,都没有找到。

我已尝试将我的凭据存储在 Windows 凭据管理器通用凭据 部分中。 git:https://&lt;corporate-gitlab-server&gt; 似乎适用于 git(在第一次连接时由 git 添加),所以我为 conda 尝试了以下操作:

conda:https://<corporate-nexus-repo>
miniconda3:https://<corporate-nexus-repo>
python:https://<corporate-nexus-repo>

conda 似乎没有理解上述配置。所以我们在这里:

  • 我应该如何将我的凭据存储在 Windows 凭据管理器中,以便 conda 检索它们?我没有找到任何有关如何使用此功能的详细文档。
  • 如果这不可能,是否有任何简单可行的解决方法(这应该是所有最终用户都可以通过合理数量的步骤来管理的事情)?

【问题讨论】:

  • 仅供参考,NXRM3 用户令牌允许您以非明文形式存储密码。然而,这是一项专业功能。不是给你的答案,但如果你被困在里面可能会有所帮助。

标签: conda nexus credentials miniconda


【解决方案1】:

Windows GCM (Git-Credential-Manager-for-Windows) 允许缓存 Git 用于访问远程存储库的凭据:这不适用于其他类型的远程服务(如公司代理)。

在工作中,我们总是使用本地代理(使用当前会话的凭据重定向到实际的公司代理):genotrance/px(有一个px.exe pre-compiled for Windows

Px 是一个 HTTP(s) 代理服务器,它允许应用程序通过 NTLM 或 Kerberos 代理服务器进行身份验证,通常用于企业部署,而无需处理实际的握手。

它主要设计用于在 Windows 系统上运行,并使用当前登录的 Windows 用户帐户代表应用程序进行身份验证。

这样,本地就不会存储任何凭据。


OP Romain Reboulleau 选择了另一种方法in the comments

平台管理团队不再需要进行身份验证才能从存储库下载。
所以现在只有使用另一个客户端的存储库管理员才需要凭据,而这个不需要存储凭据。

【讨论】:

  • 感谢您的回答。但是,我正在寻找一种不需要用户执行太多操作的解决方案,因为这必须由每个最终用户完成。安装和配置过程对我来说似乎很复杂。不过,有趣的是,该解决方案似乎使用 Windows 凭据管理器作为后端。所以一定有办法。
  • @RomainReboulleau 我可以向您保证,“安装和配置过程对我来说似乎很复杂”非常简单。 px.ini 包含代理的名称和端口,其余为默认值。
  • 好的,我试试。如果它确实有效,也许我会尝试为用户打包它。
  • 凭证管理器中确实发生了一些事情,但我无法让客户端使用它。我认为问题出在客户端。无论如何,平台管理团队消除了从 repo 下载进行身份验证的需要。所以现在只有使用另一个客户端的存储库管理员才需要凭据,而这个不需要存储凭据。
  • @RomainReboulleau 好的。我已将您的评论包含在答案中以提高知名度。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多