上传到本地 pypi 服务器时禁用身份验证

Posted

技术标签:

【中文标题】上传到本地 pypi 服务器时禁用身份验证【英文标题】:Disable authentication when uploading to local pypi server 【发布时间】:2016-07-30 01:29:53 【问题描述】:

我正在使用pypiserver 启动本地服务器来托管和提供python 包,以便在沙箱内进行开发。是否可以禁用密码验证?文档here 说

目前仅支持受密码保护的上传!

但它还说:

即使上传也可以禁用身份验证。为避免懒惰的安全决策,请阅读 -P 和 -a 选项的帮助

如果该工具支持此类功能,我希望不必使用密码,因为这仅用于迭代开发。有谁知道这是否可能?

【问题讨论】:

【参考方案1】:

来自文档:https://pypi.python.org/pypi/pypiserver#detailed-usage

-P, --passwords PASSWORD_FILE
   use apache htpasswd file PASSWORD_FILE to set usernames & passwords when
   authenticating certain actions (see -a option).
   If you want to allow un-authorized access, set this option and -a
   explicitly to empty (either '.' or'').

基于此,您需要像这样启动服务器:

./pypi-server -p 8080 -P -a

实际上我遇到了同样的问题,但我在 mod_wsgi 下运行它。你如何在那里禁用身份验证?

【讨论】:

对于 mod_wsgi,您可以在 .wsgi 脚本中指定 password_file = ""authenticated = ""【参考方案2】:

我建议使用devpi-server。相关命令devpi 允许通过以下方式输入用户凭据 login 子命令。然后登录有效期为 10 小时,可以通过devpi logout 停止。

devpi-server 还有其他不错的功能值得使用 - 例如。如果您上传的包裹包含 tox.ini,您可以拨打devpi test <packagename>,它会下载它,临时安装 virtualenv,在其中运行 tox 并将测试结果推送到 devpi 服务器。

【讨论】:

谢谢,但有没有办法完全禁用登录?如果我要设置密码,那么我可以把它放在我的pypirc 中并让它也适用于pypiserver devpi-server 允许使用密码为空的用户帐户。无论如何,您都必须执行login,因为服务器应该知道谁在与它交谈。请注意,服务器仅对有限的命令集(推送、上传等)需要有效登录,而不是用于从其安装软件包等普通用途。

以上是关于上传到本地 pypi 服务器时禁用身份验证的主要内容,如果未能解决你的问题,请参考以下文章

部署网站会禁用Windows身份验证

如何禁用 WCF 数据服务的身份验证方案

如何在 Spring 服务器配置中禁用“需要身份验证的弹出窗口”?

在 IIS 中禁用匿名身份验证后 WebServiceHost 无法正常工作

webDAV IIS6 身份验证不适用于匿名禁用

启用证书身份验证时获取 401.2