-
Notifications
You must be signed in to change notification settings - Fork 167
Description
Running an AsyncSSH SSH server currently does not accept SSH identification strings prefixed with SSH-1.99-.
asyncssh/asyncssh/connection.py
Lines 1553 to 1554 in d281290
| if (version.startswith(b'SSH-2.0-') or | |
| (self.is_client() and version.startswith(b'SSH-1.99-'))): |
When a client sends such an identification string, the server forcibly closes the connection.
asyncssh/asyncssh/connection.py
Line 1580 in d281290
| self._force_close(ProtocolNotSupported('Unsupported SSH version')) |
While this is not specified in an RFC, and rather RFC 4253 specifies the protoversion for the server rather than a client, many legacy clients leverage a 1.99 protoversion to indicate that they support both SSHv1 and SSHv2.
SSHv1.5 is the final revision for SSHv1, so supporting this should generally not cause issues with incorrectly failing to close the connection. We can observe such support in other SSH server libraries such as paramiko.