![]() |
Chilkat • HOME • Android™ • AutoIt • C • C# • C++ • Chilkat2-Python • CkPython • Classic ASP • DataFlex • Delphi DLL • Go • Java • Node.js • Objective-C • PHP Extension • Perl • PowerBuilder • PowerShell • PureBasic • Ruby • SQL Server • Swift • Tcl • Unicode C • Unicode C++ • VB.NET • VBScript • Visual Basic 6.0 • Visual FoxPro • Xojo Plugin
(PHP ActiveX) 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.
<?php // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.Ssh') $ssh1 = new COM("Chilkat.Ssh"); // Hostname may be an IP address or domain name: $hostname = '192.168.1.111'; $port = 22; // Connect directly to the 1st SSH server: $success = $ssh1->Connect($hostname,$port); if ($success != 1) { print $ssh1->LastErrorText . "\n"; exit; } // Authenticate using login/password: $success = $ssh1->AuthenticatePw('myLogin','myPassword'); if ($success != 1) { print $ssh1->LastErrorText . "\n"; exit; } // 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. // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.SFtp') $sftp = new COM("Chilkat.SFtp"); // Connect to some SSH/SFTP server through ssh1. $success = $sftp->ConnectThroughSsh($ssh1,'sftp.someremoteserver.com',22); if ($success != 1) { print $sftp->LastErrorText . "\n"; exit; } // Authenticate with the SFTP server. $success = $sftp->AuthenticatePw('myLogin','myPassword'); if ($success != 1) { print $sftp->LastErrorText . "\n"; exit; } // After authenticating, the SFTP subsystem must be initialized: $success = $sftp->InitializeSftp(); if ($success != 1) { print $sftp->LastErrorText . "\n"; exit; } // Upload from the local file to the SSH server. // Important -- the remote filepath is the 1st argument, // the local filepath is the 2nd argument; $remoteFilePath = 'hamlet.xml'; $localFilePath = 'c:/temp/hamlet.xml'; $success = $sftp->UploadFileByName($remoteFilePath,$localFilePath); if ($success != 1) { print $sftp->LastErrorText . "\n"; exit; } print 'Success.' . "\n"; // 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. $sftp->Disconnect(); // ... // ... // ... $ssh1->Disconnect(); ?> |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.