Skip to content

SSH-1.99 SSH Identification String from Client #777

@Jayson-Fong

Description

@Jayson-Fong

Running an AsyncSSH SSH server currently does not accept SSH identification strings prefixed with SSH-1.99-.

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.

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions