AutoIt
AutoIt
SSH Tunnel for Database Connection (such as ADO, ODBC, JDBC, etc.)
See more SSH Tunnel Examples
Demonstrates how to create an SSH tunneling client in a background thread of your application. This makes it possible to SSH tunnel database connections without the need for separate software (such as PuTTY) to be running.Chilkat AutoIt Downloads
Local $bSuccess = False
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
$bSuccess = False
$oTunnel = ObjCreate("Chilkat.SshTunnel")
Local $sshHostname = "sftp.example.com"
Local $iSshPort = 22
; Connect to an SSH server and establish the SSH tunnel:
$bSuccess = $oTunnel.Connect($sshHostname,$iSshPort)
If ($bSuccess <> True) Then
ConsoleWrite($oTunnel.LastErrorText & @CRLF)
Exit
EndIf
; Authenticate with the SSH server via a login/password
; or with a public key.
; This example demonstrates SSH password authentication.
$bSuccess = $oTunnel.AuthenticatePw("mySshLogin","mySshPassword")
If ($bSuccess <> True) Then
ConsoleWrite($oTunnel.LastErrorText & @CRLF)
Exit
EndIf
; The destination host/port is the database server.
; The DestHostname may be the domain name or
; IP address (in dotted decimal notation) of the database
; server.
$oTunnel.DestPort = 1433
$oTunnel.DestHostname = "myDbServer.com"
; Start accepting connections in a background thread.
; The SSH tunnels are autonomously run in a background
; thread. There is one background thread for accepting
; connections, and another for managing the tunnel pool.
Local $iListenPort = 3316
$bSuccess = $oTunnel.BeginAccepting($iListenPort)
If ($bSuccess <> True) Then
ConsoleWrite($oTunnel.LastErrorText & @CRLF)
Exit
EndIf
; At this point the app may connect to the database server through
; the SSH tunnel. The database connection string would
; use "localhost" for the hostname and 3316 for the port.
; We're not going to show the database coding here,
; because it can vary depending on the API you're using
; (ADO, ODBC, OLE DB, etc. )
; This is where the application's database code would go...
; Stop the background listen/accept thread:
Local $bWaitForThreadExit = True
$bSuccess = $oTunnel.StopAccepting($bWaitForThreadExit)
If ($bSuccess <> True) Then
ConsoleWrite($oTunnel.LastErrorText & @CRLF)
Exit
EndIf
; Close the SSH tunnel (would also kick any remaining connected clients).
$bSuccess = $oTunnel.CloseTunnel($bWaitForThreadExit)
If ($bSuccess <> True) Then
ConsoleWrite($oTunnel.LastErrorText & @CRLF)
Exit
EndIf