玖叶教程网

前端编程开发入门

python之 paramiko模块安装失败

今天使用python编写一段小程序,但引入paramiko模块失败

paramiko是一个基于SSH用于连接远程服务器并执行相关操作(SSHClient和SFTPClinet,即一个是远程连接,一个是上传下载服务),使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现实。利用该模块,可以方便的进行ssh连接和sftp协议进行sftp文件传输。

环境:win10系统安装anaconda3 ,python3.9

python安装paramiko模块失败原因排查如下:

During handling of the above exception, another exception occurred:....

pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.

查看pip -v

经排查发现pycrypto停止对3.2以上版本的python的支持,目前版本3.9

安装pycryptodome后 问题得以解决。

pycrypto模块是一个实现了各种算法和协议的加密模块的结合,提供了各种加密方式对应的多种加密算法的实现,包括 单向加密、对称加密以及公钥加密和随机数操作。hashlib和hmac虽然是Python的内置模块,但是它们只提供了单向加密相关算法的实现,如果要使用对称加密算法(如, DES,AES等)或者公钥加密算法我们通常都是使用pycryto这个第三方模块来实现。
存在以下几个子包:
pycryto能实现大致3种类型的数据加密(单向加密、对称加密 和非对称加密),产生随机数,生成密钥对,数字签名。
A、单向加密,Crypto.Hash其中中包含MD5、SHA1、SHA256等,这些算法又称为“哈希算法”或“散列算法”或“数据摘要算法”。Python内置的hashlib和hmac也可以实现。
B、对称加密,Crypto.Cipher,如常见的DES等。
C、非对称加密,Crypto.Cipher ,如常见的AES加密等。
D、随机数操作,Crypto.Random,也可以使用Python内置的random模块和secrets模块产生。
E、生成密钥对,Crypto.PublicKey,支持生成RSA算法的密钥对生成。
F、数字签名与验签,可能需要使用到Crypto.PublicKey,Crypto.Hash,Crypto.Signature

注意!pycrypto 已很久未维护,有安全漏洞。建议使用 pycryptodome 替代 pycrypto

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言