我将paramiko用作python脚本的一部分。在此脚本中,我还使用python的日志记录模块记录日志文件和stderr。只有我通过logger.debug,logger.info等指定的内容才能显示在控制台中。不幸的是,当我如下向paramiko打电话时:
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=host, port=port, username=user, key_filename=keyfile)
以下消息输出到stderr:
CryptographyDeprecationWarning:已弃用签名者和验证者。请使用签名并验证。
我试图通过将paramiko的日志记录更改为CRITICAL来抑制这种情况:
logging.getLogger("paramiko").setLevel(logging.CRITICAL)
将其定向到这样的文件中:
paramiko.util.log_to_file('filename.log')
但都不行。
有没有办法使此停止显示为控制台输出?
答案 0 :(得分:3)
paramiko==2.4.2
仍然存在此问题;显然是for the next 2.x release的预定时间,因此很可能是2.5。
他们指出的问题本质上是“旧paramiko
,新cryptography
”
与此同时,您可以尝试通过以下方法对其进行修复:
pip uninstall cryptography ; pip install cryptography==$DESIRED_VERSION
将$DESIRED_VERSION
替换为the version you need。 paramiko 2.4.2于2018年9月发布,看起来兼容的最新版本是加密2.3.1。在我的设置中,它可以正常工作。
这实质上意味着降级您的加密程序包,因此请三思而后行。