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
(DataFlex) Multiple Hop SSH to SFTPDemonstrates how to SFTP through an intermediate SSH server (multiple hop). The scheme looks like this: Application => ServerSSH1 => ServerSFtp The ConnectThroughSsh method is added in Chilkat version 9.5.0.55 to accomplish this task.
Use ChilkatAx-win32.pkg Procedure Test Variant vSsh1 Handle hoSsh1 String sHostname String sPort Boolean iSuccess Handle hoSftp String sRemoteFilePath String sLocalFilePath String sTemp1 // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatSsh)) To hoSsh1 If (Not(IsComObjectCreated(hoSsh1))) Begin Send CreateComObject of hoSsh1 End // Hostname may be an IP address or domain name: Move "192.168.1.111" To sHostname Move 22 To sPort // Connect directly to the 1st SSH server: Get ComConnect Of hoSsh1 sHostname sPort To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoSsh1 To sTemp1 Showln sTemp1 Procedure_Return End // Authenticate using login/password: Get ComAuthenticatePw Of hoSsh1 "myLogin" "myPassword" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoSsh1 To sTemp1 Showln sTemp1 Procedure_Return End // Connect through the 1st SSH connection to reach a 2nd SSH server (for SFTP) // Note: Any number of connections may be simultaneously tunneled through a single // existing SSH connection. Get Create (RefClass(cComChilkatSFtp)) To hoSftp If (Not(IsComObjectCreated(hoSftp))) Begin Send CreateComObject of hoSftp End // Connect to some SSH/SFTP server through ssh1. Get pvComObject of hoSsh1 to vSsh1 Get ComConnectThroughSsh Of hoSftp vSsh1 "sftp.someremoteserver.com" 22 To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoSftp To sTemp1 Showln sTemp1 Procedure_Return End // Authenticate with the SFTP server. Get ComAuthenticatePw Of hoSftp "myLogin" "myPassword" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoSftp To sTemp1 Showln sTemp1 Procedure_Return End // After authenticating, the SFTP subsystem must be initialized: Get ComInitializeSftp Of hoSftp To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoSftp To sTemp1 Showln sTemp1 Procedure_Return End // Upload from the local file to the SSH server. // Important -- the remote filepath is the 1st argument, // the local filepath is the 2nd argument; Move "hamlet.xml" To sRemoteFilePath Move "c:/temp/hamlet.xml" To sLocalFilePath Get ComUploadFileByName Of hoSftp sRemoteFilePath sLocalFilePath To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoSftp To sTemp1 Showln sTemp1 Procedure_Return End Showln "Success." // Close the connection with the SFTP server.(This closes the the tunnel through ssh1.) // The connection with ssh1 is still alive, and may be used for more connections. Send ComDisconnect To hoSftp // ... // ... // ... Send ComDisconnect To hoSsh1 End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.