Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(ASP) SSH Tunnel using Public Key AuthenticationDemonstrates how to use public key authentication with an SSH tunnel.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <% set sshTunnel = Server.CreateObject("Chilkat.SshTunnel") success = sshTunnel.UnlockComponent("30-day trial") If (success <> 1) Then Response.Write "<pre>" & Server.HTMLEncode( sshTunnel.LastErrorText) & "</pre>" End If ' 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. sshTunnel.DestPort = 1433 sshTunnel.DestHostname = "myDbServer.com" ' Provide information about the location of the SSH server, ' and the authentication to be used with it. This is the ' login information for the SSH server (not the database server). sshTunnel.SshHostname = "192.168.1.108" sshTunnel.SshPort = 22 sshTunnel.SshLogin = "mySshLogin" ' Instead of setting the password property, ' load and use an SSH key: set key = Server.CreateObject("Chilkat.SshKey") ' Load a private key from a PEM file: ' (Private keys may be loaded from OpenSSH and Putty formats. ' Both encrypted and unencrypted private key file formats ' are supported. This example loads an unencrypted private ' key in OpenSSH format. PuTTY keys typically use the .ppk ' file extension, while OpenSSH keys use the PEM format. privKey = key.LoadText("myPrivateKey.pem") If (privKey = vbNullString ) Then Response.Write "<pre>" & Server.HTMLEncode( key.LastErrorText) & "</pre>" End If ' Tell the SSH tunnel to use the key for authentication: success = sshTunnel.SetSshAuthenticationKey(key) If (success <> 1) Then Response.Write "<pre>" & Server.HTMLEncode(sshTunnel.LastErrorText) & "</pre>" End If ' 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. listenPort = 3316 success = sshTunnel.BeginAccepting(listenPort) If (success <> 1) Then Response.Write "<pre>" & Server.HTMLEncode(sshTunnel.LastErrorText) & "</pre>" End If ' At this point you may connect to the database server through ' the SSH tunnel. Your 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 your database code would go... ' When you're finished with the database connection, you may ' stop the background tunnel threads: ' Stop the background thread that accepts new connections: success = sshTunnel.StopAccepting() If (success <> 1) Then Response.Write "<pre>" & Server.HTMLEncode( sshTunnel.LastErrorText) & "</pre>" End If ' If any background tunnels are still in existence (and managed ' by a single SSH tunnel pool background thread), stop them... maxWaitMs = 1000 success = sshTunnel.StopAllTunnels(maxWaitMs) If (success <> 1) Then Response.Write "<pre>" & Server.HTMLEncode( sshTunnel.LastErrorText) & "</pre>" End If %> </body> </html> |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.