Multi-Hop SSH Tunneling for Chilkat v9.5.0.55

The ability to multi-hop SSH tunnels is available for testing in the Chilkat v9.5.0.55 pre-release.

The typical schemes for multiple hop SSH look like this:

(for running a remote shell or commands on SSH_server_B)
application => SSH_server_A => SSH_server_B

(for connecting to a remote host:port, via Socket with TCP or TLS)
application(TCP_or_TLS) => SSH_server_A => SSH_server_B => destHost:destPort

(IMAP)
application => SSH_server_A => SSH_server_B => IMAP_server

(SMTP)
application => SSH_server_A => SSH_server_B => SMTP_server

(POP3)
application => SSH_server_A => SSH_server_B => POP3_server

(SFTP)
application => SSH_server_A => SFTP_server_B

(SCP)
application => SSH_server_A => SSH_server_B

(HTTP -- dynamic port forwarding)
application => SshTunnel_bg_thread(SOCKS) => SSH_server_A => SSH_server_B => destHost:destPort

It is technically possible to chain any number of hops together, although performance would get worse for each additional hop.

application => SSH_server_A => SSH_server_B => ... => SSH_server_N => destHost:destPort

The new v9.5.0.55 methods to achieve multi-hop SSH are:

  • Ssh.ConnectThroughSsh
  • SFtp.ConnectThroughSsh
  • SshTunnel.ConnectThroughSsh
  • Imap.UseSsh
  • Mailman.UseSsh
  • Socket.UseSsh

See the online reference documentation at Chilkat reference documentation.

See these examples: