问题是,如何在Ubuntu Trusty上使用pip安全地安装软件包?当然,我需要澄清为什么我认为它不安全。
如果你在Python 2.7.9之前没有安装一些额外的openssl相关的python库而发出https请求,那么 urllib3会给出一个InsecurePlatformWarning
。这是一个完善的问答:
问题是,如果您安装pip版本6左右,它会在您安装任何内容时开始向您发出此警告。从阅读问题的官方答案:
https://urllib3.readthedocs.org/en/latest/security.html#pyopenssl
听起来问题出在Python ssl库中。 Pip是否在最新版本中从openssl切换到Python ssl库?我的猜测(也许是一个糟糕的猜测)是pip之前使用过Python库,它只是使用了一个甚至没有发出警告的旧版urllib。所以它一直都是不安全的(虽然特别关注的特殊情况似乎有些近期)。
如果那是的话,那么Ubuntu上的pip库存版本是不安全的。我无法使用它来安全地安装这些东西以确保安全。无论如何,我可以从Ubuntu的repo中安装相同的东西,它使用GPG验证包:
http://packages.ubuntu.com/search?keywords=python-ndg-httpsclient
除了以上内容仅适用于Utopic。在Trusty上,我似乎陷入困境。
那是什么交易?我是否必须掷骰子并不安全地安装这个东西一次,然后才安全地使用pip?或者我是否完全误读了这种情况?
答案 0 :(得分:6)
pip默认使用标准库ssl模块(除非你还安装了你提到的额外库)。在Python 2.7.9和Python 3.2之前(我认为它是3.2,可能是3.1)标准库中的ssl模块缺乏控制与ssl相关的某些设置的能力。
其中一些设置:
至于你应该做什么,这取决于你。如果您从PyPI本身进行安装,很多这些事情并不重要,因为我们在服务器端禁用它们而不是依靠客户端来实现它们。然而,请求(底层库pip用于访问存储库)会引发这些警告(并且pip不会使它们静音),因为PyPI通常不是您要连接的唯一地方,而这些额外的地方可能会也可能不会PyPI具有相同的预防措施。
资料来源:我是PyPI的核心开发人员和管理员。
答案 1 :(得分:0)
我读了现有的讨论,并且想得很清楚,我现在应该做些什么?
然后我意识到我遇到的根本问题是我在Ubuntu 14.04上,并且它发布的python版本存在缺陷。所以我升级到了15.04。