在 Paramiko 库中,我想指定首选密码(以禁用不太安全的密码)。
我尝试像这样覆盖传输首选密码
paramiko.Transport._preferred_ciphers = (aes128-cbc,...)
这工作正常,我可以覆盖和禁用密码。
但是我在使用它时面临警告“W0212 访问客户端类的受保护成员_preferred_ciphers”。
还有其他方法可以限制 Paramiko 中使用的密码吗?
使用
Transport.get_security_options()
获取 SecurityOptions
类的实例。
并使用其
ciphers
属性作为设置底层 Transport._preferred_ciphers
的正确方法。
Transport
类 来实现 SSH 连接,而不是常用的高级 SSHClient
类。
使用
Transport
类时,请确保不要忘记设置 Transport.connect
hostkey
参数来验证主机密钥。 Transport
不会自动验证密钥(与 SSHClient
相反)。忘记这样做是一个安全缺陷。
SSHClient
对象在幕后创建了 Transport
类对象,但在使用该对象尝试连接之前,您无法修改或调用该对象上的方法。
如果你想继续使用高级
SSHClient
,那么设置_preferred_ciphers
是唯一的方法。