如何在Paramiko库中配置首选密码

问题描述 投票:0回答:1

在 Paramiko 库中,我想指定首选密码(以禁用不太安全的密码)。

我尝试像这样覆盖传输首选密码

paramiko.Transport._preferred_ciphers = (aes128-cbc,...)

这工作正常,我可以覆盖和禁用密码。

但是我在使用它时面临警告“W0212 访问客户端类的受保护成员_preferred_ciphers”

还有其他方法可以限制 Paramiko 中使用的密码吗?

python ssh paramiko
1个回答
1
投票

使用

Transport.get_security_options()
获取
SecurityOptions
的实例。

并使用其

ciphers
属性作为设置底层
Transport._preferred_ciphers
的正确方法。

为了能够做到这一点,您需要使用低级

Transport
来实现 SSH 连接,而不是常用的高级
SSHClient

使用

Transport
类时,请确保不要忘记设置
Transport.connect
hostkey
参数来验证主机密钥。
Transport
不会自动验证密钥(与
SSHClient
相反)。忘记这样做是一个安全缺陷。


SSHClient
对象在幕后创建了
Transport
类对象,但在使用该对象尝试连接之前,您无法修改或调用该对象上的方法。

如果你想继续使用高级

SSHClient
,那么设置
_preferred_ciphers
是唯一的方法。

© www.soinside.com 2019 - 2024. All rights reserved.