Paramiko: “FutureWarning: CTR mode needs counter p

2019-04-04 05:22发布

问题:

I am trying to use Paramiko in Python2 for transferring files through SFTP with private SSH key but it displays this warning:

/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)

In fact it sends the file to the server but can someone explain me what this warning means?

Here is my code:

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()

回答1:

This is most likely a bug in paramiko

You can try to patch paramiko/transport.py with this patch to make the warning go away

See also the discussion here which references the pull request.



回答2:

This worked for me.

  1. Remove the python-paramiko package installed with apt:

apt remove python-paramiko

  1. Install paramiko via pip that provides a newer obviously fixed version:

apt install duplicity python-pip -y

pip install paramiko



回答3:

Updating Crypto package vanishes the "CTR mode needs counter parameter, not IV" warning in my case:

pip install -U Crypto