上传到本地 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 服务器时禁用身份验证的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring 服务器配置中禁用“需要身份验证的弹出窗口”?