PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkSocket.pb"
Procedure ChilkatExample()
success.i = 0
socket.i = CkSocket::ckCreate()
If socket.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Connect to the SSH server and initialize an SSH tunneling session. Port 22 is conventional but
; not required.
success = CkSocket::ckSshOpenTunnel(socket,"ssh.example.com",22)
If success = 0
Debug CkSocket::ckLastErrorText(socket)
CkSocket::ckDispose(socket)
ProcedureReturn
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.
sshPassword.s = "mySshPassword"
success = CkSocket::ckSshAuthenticatePw(socket,"sshUser",sshPassword)
If success = 0
Debug CkSocket::ckLastErrorText(socket)
CkSocket::ckDispose(socket)
ProcedureReturn
EndIf
Debug "SSH tunnel established and authenticated."
CkSocket::ckDispose(socket)
ProcedureReturn
EndProcedure