Paramiko 2.9.0 breaks compatibility with devices only supporting ssh-rsa and not supporting server-sig-algs
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
paramiko |
New
|
Unknown
|
|||
paramiko (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned | ||
Jammy |
Confirmed
|
Undecided
|
Unassigned | ||
Kinetic |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
[impact]
paramiko fails to connect to some servers.
[test case]
attempt to connect to a server that does not support server-sig-algs and also only supports ssh-rsa (specifically, does not support rsa-sha2-512). the connection will fail:
DEBUG:paramiko.
DEBUG:paramiko.
DEBUG:paramiko.
DEBUG:paramiko.
INFO:paramiko.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/
self._auth(
File "/usr/lib/
raise saved_exception
File "/usr/lib/
key = self._key_
File "/usr/lib/
key = klass.from_
File "/usr/lib/
key = cls(filename=
File "/usr/lib/
self.
File "/usr/lib/
data = self._read_
File "/usr/lib/
data = self._read_
File "/usr/lib/
data = self._read_
File "/usr/lib/
raise PasswordRequire
paramiko.
[regression potential]
any regression would likely prevent paramiko from connecting to a remote server.
[scope]
this needs to be fixed in jammy and later.
this problem was introduced in paramiko 2.9.0 so does not exist in impish or earlier.
[other info]
this doesn't appear to be fixed upstream yet.
https:/
Note this can be worked around if direct access to the paramiko code is possible, by using the 'disabled_
client.
Note this can break connections to other systems however, that do support (only) those algs, so is not a very good workaround. Additionally, this workaround isn't even possible if paramiko is being used internally by some other python application.
Note that for servers showing this problem, using openssh to connect is also broken, but for a different reason (because the ssh-rsa alg is disallowed by default), see bug 1961833