![]() |
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
(PureBasic) SFTP Authentication using an SSH CertificateSee more SFTP ExamplesDemonstrates how to SFTP authenticate using an SSH certificate.Note: This example requires Chilkat v11.0.0 or greater. For more information, see https://www.chilkatsoft.com/understanding_ssh_certificates.asp
IncludeFile "CkSshKey.pb" IncludeFile "CkStringBuilder.pb" IncludeFile "CkSFtp.pb" Procedure ChilkatExample() ; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. sbSshCert.i = CkStringBuilder::ckCreate() If sbSshCert.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i = CkStringBuilder::ckLoadFile(sbSshCert,"qa_data/sshCert/user_ecdsa_key-cert.pub","utf-8") If success = 0 Debug "Failed to load user_ecdsa_key-cert.pub" CkStringBuilder::ckDispose(sbSshCert) ProcedureReturn EndIf sbPrivKey.i = CkStringBuilder::ckCreate() If sbPrivKey.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkStringBuilder::ckLoadFile(sbPrivKey,"qa_data/sshKeys/user_ecdsa_key","utf-8") If success = 0 Debug "Failed to load user_ecdsa_key" CkStringBuilder::ckDispose(sbSshCert) CkStringBuilder::ckDispose(sbPrivKey) ProcedureReturn EndIf key.i = CkSshKey::ckCreate() If key.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Provide the password if the user_ecdsa_key is stored in an encrypted format. CkSshKey::setCkPassword(key, "secret") success = CkSshKey::ckFromOpenSshPrivateKey(key,CkStringBuilder::ckGetAsString(sbPrivKey)) If success = 0 Debug CkSshKey::ckLastErrorText(key) CkStringBuilder::ckDispose(sbSshCert) CkStringBuilder::ckDispose(sbPrivKey) CkSshKey::ckDispose(key) ProcedureReturn EndIf ; Indicate that the SSH certificate is to be used for authentication. ; The UseSshCertificate method was added in Chilkat v11.0.0 CkSshKey::ckUseSshCertificate(key,CkStringBuilder::ckGetAsString(sbSshCert)) sftp.i = CkSFtp::ckCreate() If sftp.i = 0 Debug "Failed to create object." ProcedureReturn EndIf hostname.s = "sftp.example.com" port.i = 22 success = CkSFtp::ckConnect(sftp,hostname,port) If success <> 1 Debug CkSFtp::ckLastErrorText(sftp) CkStringBuilder::ckDispose(sbSshCert) CkStringBuilder::ckDispose(sbPrivKey) CkSshKey::ckDispose(key) CkSFtp::ckDispose(sftp) ProcedureReturn EndIf success = CkSFtp::ckAuthenticatePk(sftp,"myLogin",key) If success <> 1 Debug CkSFtp::ckLastErrorText(sftp) CkStringBuilder::ckDispose(sbSshCert) CkStringBuilder::ckDispose(sbPrivKey) CkSshKey::ckDispose(key) CkSFtp::ckDispose(sftp) ProcedureReturn EndIf Debug "Public-Key Authentication using an SSH Certificate was Successful!" CkStringBuilder::ckDispose(sbSshCert) CkStringBuilder::ckDispose(sbPrivKey) CkSshKey::ckDispose(key) CkSFtp::ckDispose(sftp) ProcedureReturn EndProcedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.