Sample code for 30+ languages & platforms
Xbase++

Open an SSH Tunnel

See more Socket/SSL/TLS Examples

Demonstrates Socket.SshOpenTunnel, which connects to an SSH server and initializes an SSH tunneling session, then authenticates it.

Background. An SSH tunnel lets a socket reach a destination host through an SSH server using port forwarding. The sequence is: open the tunnel, authenticate, then open forwarded channels to destinations.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oSocket
LOCAL cSshPassword

nSuccess := 0

oSocket := CreateObject("Chilkat.Socket")

//  Connect to the SSH server and initialize an SSH tunneling session.  Port 22 is conventional but
//  not required.
nSuccess := oSocket:SshOpenTunnel("ssh.example.com", 22)
IF (nSuccess == 0)
    ? oSocket:LastErrorText
    oSocket:destroy()
    RETURN
ENDIF

//  After the tunnel is open, authenticate before opening forwarded channels.
//  The SSH password should come from a secure source rather than being hard-coded.
cSshPassword := "mySshPassword"
nSuccess := oSocket:SshAuthenticatePw("sshUser", cSshPassword)
IF (nSuccess == 0)
    ? oSocket:LastErrorText
    oSocket:destroy()
    RETURN
ENDIF

? "SSH tunnel established and authenticated."

oSocket:destroy()