参数:"FutureWarning: CTR mode needs counter parameter"

Paramiko: "FutureWarning: CTR mode needs counter parameter"

我正在尝试在 Python2 中使用 Paramiko 以使用 SSH 私钥通过 SFTP 传输文件,但它显示此警告:

/usr/lib/python2.7/dist-packages/Crypto/Cipher/blockalgo.py:141: 
FutureWarning: CTR mode needs counter parameter, not IV   self._cipher = factory.new(key, *args, **kwargs)

实际上它会将文件发送到服务器,但有人能解释一下这个警告是什么意思吗?

这是我的代码:

t = paramiko.Transport((host, port))
key = paramiko.RSAKey.from_private_key_file("/path/to/key.ssh") 
t.connect(username="username",password=None, pkey=key)

sftp = paramiko.SFTPClient.from_transport(t)
sftp.put(source, destination)

sftp.close()
t.close()

这很可能是 paramiko 中的错误

您可以尝试用 this patch 修补 paramiko/transport.py 以使警告消失

另请参阅引用拉取请求的讨论 here

在我的案例中,更新加密包会消除 "CTR mode needs counter parameter, not IV" 警告:

pip install -U Crypto

这对我有用。

  1. 删除使用 apt 安装的 python-paramiko 软件包:

apt remove python-paramiko

  1. 通过 pip 安装 paramiko,它提供了更新的明显固定版本:

apt install duplicity python-pip -y

pip install paramiko

@hansaplast 推荐的内容效果很好。 就我而言,我将以下文件中第 1649 行的 vi 替换为 </code>: <code>/usr/lib/python2.7/dist-packages/paramiko/transport.py