17

我正在尝试在 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()
4

4 回答 4

20

这很可能是 paramiko 中的错误

您可以尝试paramiko/transport.py使用此补丁进行修补以使警告消失

另请参阅此处引用拉取请求的讨论。

于 2017-02-03T17:17:27.930 回答
4

这对我有用。

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

apt remove python-paramiko

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

apt install duplicity python-pip -y

pip install paramiko

于 2017-11-01T21:19:53.393 回答
3

在我的情况下,更新 Crypto 包消失了“CTR 模式需要计数器参数,而不是 IV”警告:

pip install -U Crypto
于 2017-10-07T10:04:44.250 回答
0

@hansaplast 推荐的东西效果很好。就我而言,我在以下文件的第 1649 行 替换vi为:/usr/lib/python2.7/dist-packages/paramiko/transport.py

于 2020-03-19T03:08:08.123 回答