Skip to content

SSH Protocol Support

ZestSSH implements the SSH 2.0 protocol. SSH 1.x is not supported and will not be added --- it has known cryptographic weaknesses and has been deprecated for over a decade.

SSH-2.0 as defined by RFC 4253 (The Secure Shell Transport Layer Protocol). ZestSSH identifies itself with the version string SSH-2.0-dartssh2_X.Y.Z during the protocol handshake.

ZestSSH’s SSH implementation covers the following core specifications:

RFCTitleCoverage
RFC 4250SSH Protocol Assigned NumbersIdentifiers and constants
RFC 4251SSH Protocol ArchitectureOverall architecture
RFC 4252SSH Authentication ProtocolPassword, publickey, keyboard-interactive
RFC 4253SSH Transport Layer ProtocolKey exchange, encryption, integrity
RFC 4254SSH Connection ProtocolChannels, sessions, forwarding
MethodRFCSupported
publickeyRFC 4252Yes
passwordRFC 4252Yes
keyboard-interactiveRFC 4256Yes
hostbasedRFC 4252No
noneRFC 4252No

Keyboard-interactive authentication is used for two-factor authentication prompts and systems that use PAM challenges beyond simple passwords.

See Supported KEX Algorithms for the full list.

ZestSSH supports Curve25519 (the recommended default), ECDH with NIST curves, Diffie-Hellman group exchange, and fixed-group DH.

See Supported Key Types for the full list.

ZestSSH supports Ed25519, Ed448, RSA (with SHA-1, SHA-256, and SHA-512 signatures), and ECDSA with NIST curves.

See Supported Ciphers for the full list.

ZestSSH supports ChaCha20-Poly1305 (the recommended default), AES-GCM, AES-CTR, and AES-CBC in various key sizes.

ExtensionSourceSupported
[email protected]OpenSSHYes
[email protected]OpenSSHYes
[email protected]OpenSSHYes
[email protected]libsshYes
rsa-sha2-256RFC 8332Yes
rsa-sha2-512RFC 8332Yes
Channel TypeRFCSupported
sessionRFC 4254Yes
direct-tcpip (local port forwarding)RFC 4254Yes
forwarded-tcpip (remote port forwarding)RFC 4254Yes
x11RFC 4254No
SubsystemSupported
sftpYes
AlgorithmSupported
noneYes (default)
zlibYes
[email protected]Yes (delayed compression after auth)

Zlib compression can be enabled per connection in the connection editor. It reduces bandwidth on slow links but adds CPU overhead.

ZestSSH sends SSH keep-alive packets (SSH_MSG_IGNORE) at a configurable interval to prevent idle timeout disconnects. The interval is set per connection (default: disabled, recommended: 15-30 seconds for mobile).

SSH agent forwarding (RFC 4254, section 6.1) is supported and can be enabled per connection. When enabled, the remote server can use the client’s SSH keys for onward authentication without the keys being stored on the remote server.

The following SSH features are not currently supported:

  • SSH 1.x protocol
  • X11 forwarding
  • Host-based authentication
  • GSSAPI authentication
  • Certificate-based authentication (OpenSSH certificates)
  • ssh-dss (DSA) host keys or user keys --- deprecated due to known weaknesses