question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Unknown exception: q must be exactly 160, 224, or 256 bits long

See original GitHub issue

Due diligence #2140 appers to result in the same behavior

Describe the bug Attempting an SSH connection results in the following error: Unknown exception: q must be exactly 160, 224, or 256 bits long

To Reproduce Just run a pythonfile containing the code below. Right now, the private key is not encrypted and the config file in .ssh is empty.

Expected behaviour Successful SSH connection to the server

Environment

  • What version of the Python interpreter are you using? 3.7.10
  • What operating system are you using both client & server-side? Windows10 & Ubuntu
  • Are you using OpenSSH server or something else? OpenSSH (Windows10 default)
  • Which version or versions of the software are you using? fabric 2.6.0
    • Have you, or can you, try some older releases to pin down where the bug appeared? Not tried yet
  • How can the developers recreate the bug on their end? If possible, include a copy of your code, the command you used to invoke it, and the full output of your run (if applicable.)
from fabric import Connection

c = Connection(host='<IP>', user='<USER>', connect_kwargs={"key_filename": "C:\\Users\\<user>\\.ssh\\id_rsa"})
c.run('ls')

Output

Unknown exception: q must be exactly 160, 224, or 256 bits long
Traceback (most recent call last):
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\paramiko\transport.py", line 2109, in run
    handler(self.auth_handler, m)
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\paramiko\auth_handler.py", line 298, in _parse_service_accept
    sig = self.private_key.sign_ssh_data(blob)
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\paramiko\dsskey.py", line 116, in sign_ssh_data
    ).private_key(backend=default_backend())
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\cryptography\hazmat\primitives\asymmetric\dsa.py", line 243, in private_key
    return backend.load_dsa_private_numbers(self)
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\cryptography\hazmat\backends\openssl\backend.py", line 657, in load_dsa_private_numbers
    dsa._check_dsa_private_numbers(numbers)
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\cryptography\hazmat\primitives\asymmetric\dsa.py", line 142, in _check_dsa_private_numbers
    _check_dsa_parameters(parameters)
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\cryptography\hazmat\primitives\asymmetric\dsa.py", line 134, in _check_dsa_parameters
    raise ValueError("q must be exactly 160, 224, or 256 bits long")
ValueError: q must be exactly 160, 224, or 256 bits long

Traceback (most recent call last):
  File ".\target_setup.py", line 4, in <module>
    c.run('ls')
  File "<decorator-gen-3>", line 2, in run
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\fabric\connection.py", line 29, in opens
    self.open()
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\fabric\connection.py", line 636, in open
    self.client.connect(**kwargs)
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\paramiko\client.py", line 446, in connect
    passphrase,
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\paramiko\client.py", line 680, in _auth
    self._transport.auth_publickey(username, key)
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\paramiko\transport.py", line 1580, in auth_publickey
    return self.auth_handler.wait_for_response(my_event)
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\paramiko\auth_handler.py", line 236, in wait_for_response
    raise e
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\paramiko\transport.py", line 2109, in run
    handler(self.auth_handler, m)
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\paramiko\auth_handler.py", line 298, in _parse_service_accept
    sig = self.private_key.sign_ssh_data(blob)
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\paramiko\dsskey.py", line 116, in sign_ssh_data
    ).private_key(backend=default_backend())
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\cryptography\hazmat\primitives\asymmetric\dsa.py", line 243, in private_key
    return backend.load_dsa_private_numbers(self)
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\cryptography\hazmat\backends\openssl\backend.py", line 657, in load_dsa_private_numbers
    dsa._check_dsa_private_numbers(numbers)
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\cryptography\hazmat\primitives\asymmetric\dsa.py", line 142, in _check_dsa_private_numbers
    _check_dsa_parameters(parameters)
  File "C:\Users\mle\AppData\Local\Continuum\anaconda3\envs\blackthorn\lib\site-packages\cryptography\hazmat\primitives\asymmetric\dsa.py", line 134, in _check_dsa_parameters
    raise ValueError("q must be exactly 160, 224, or 256 bits long")
ValueError: q must be exactly 160, 224, or 256 bits long

Additional context Add any other context about the problem here.

Issue Analytics

  • State:open
  • Created 2 years ago
  • Reactions:1
  • Comments:9

github_iconTop GitHub Comments

4reactions
suhassumukhcommented, Mar 13, 2022

I, too, encountered the exact same error. It turned out that I was supplying a username that did not exist on the target machine. The error went away after I corrected my mistake.

Fabric 1.10.2

1reaction
herve-guerin-procommented, Sep 28, 2022

Hi, I have the same issue when I use paramiko==2.11.0 or paramiko==2.10.1 and I don’t have the issue if I use paramiko=2.8.1 It seems that PR #1606 addressed this issue successfully : is there any reason for not fixing that in the recent releases of paramiko ?

Read more comments on GitHub >

github_iconTop Results From Across the Web

python3-paramiko: attempts to use RSA keys as DSA
Unknown exception : q must be exactly 160, 224, or 256 bits long. Traceback (most recent call last):
Read more >
Unable to start migration in Plesk: q must be exactly 160, 224 ...
Failed to check SSH connection to the source server 'source' (203.0.113.2): q must be exactly 160, 224, or 256 bits long ...
Read more >
ValueError: p must be exactly 1024, 2048, or 3072 bits long
I am trying to connect SFTP using Python script. I'm unable to connect due to "p error". import paramiko client = paramiko.SSHClient() client....
Read more >
Can't connect to Jammy hosts (openssh >= 8.8p1-1)
Unknown exception : q must be exactly 160, 224, or 256 bits long [Full Traceback Below]. 4. Try with a newer paramiko:.
Read more >
Ansible error - "msg": "q must be exactly 160, 224, or 256 bits ...
Hi I am trying to configure a VyOS VM deployed on ovirt. I am getting “msg”: “q must be exactly 160, 224, or...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found