ConnectStep Enumeration


enum FlowSshC_ConnectStep
  FlowSshC_ConnectStep_ConnectToProxy     = 100, // Skipped when connecting directly.
  FlowSshC_ConnectStep_ConnectToSshServer = 200,
  FlowSshC_ConnectStep_SshVersionString   = 300,
  FlowSshC_ConnectStep_SshKeyExchange     = 400,
  FlowSshC_ConnectStep_SshUserAuth        = 500


public enum ConnectStep
  ConnectToProxy     = 100, // Skipped when connecting directly.
  ConnectToSshServer = 200,
  SshVersionString   = 300,
  SshKeyExchange     = 400,
  SshUserAuth        = 500


  • ConnectToProxy: At this step a connection with the proxy server is established (skipped when connecting directly).
  • ConnectToSshServer: A TCP connection with the SSH server is initiated and established.
  • SshVersionString: The SSH version string received from the server is reported to the [Client]OnSshVersion handler (if one was registered).
  • SshKeyExchange: KeyExchange is initiated. Additionally, the SSH server is authenticated in your [Client]OnHostKey handler. You must always register and implement this handler.
  • SshUserAuth: The user is authenticated by the server. If the server has a banner, it is reported to your [Client]OnBanner handler (if one was registered). If the server needs additional information, your [Client]OnFurtherAuth and [Client]OnPasswordChange handlers might get invoked (in [C] the equivalent for both is UserAuthHandler).


While connecttinh to an SSH server, internally several steps are performed. ConnectStep constants define these intermediate steps; they are reported in a progress handler associated with the [Client]Connect request.