![]() |
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) SSH Authentication using an SSH CertificateSee more SSH ExamplesDemonstrates how to 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 "CkSsh.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)) ssh.i = CkSsh::ckCreate() If ssh.i = 0 Debug "Failed to create object." ProcedureReturn EndIf hostname.s = "ssh.example.com" port.i = 22 success = CkSsh::ckConnect(ssh,hostname,port) If success <> 1 Debug CkSsh::ckLastErrorText(ssh) CkStringBuilder::ckDispose(sbSshCert) CkStringBuilder::ckDispose(sbPrivKey) CkSshKey::ckDispose(key) CkSsh::ckDispose(ssh) ProcedureReturn EndIf success = CkSsh::ckAuthenticatePk(ssh,"myLogin",key) If success <> 1 Debug CkSsh::ckLastErrorText(ssh) CkStringBuilder::ckDispose(sbSshCert) CkStringBuilder::ckDispose(sbPrivKey) CkSshKey::ckDispose(key) CkSsh::ckDispose(ssh) ProcedureReturn EndIf Debug "Public-Key Authentication using an SSH Certificate was Successful!" CkStringBuilder::ckDispose(sbSshCert) CkStringBuilder::ckDispose(sbPrivKey) CkSshKey::ckDispose(key) CkSsh::ckDispose(ssh) ProcedureReturn EndProcedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.