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
(PureBasic) SSH Public Key AuthenticationDemonstrates how to authenticate with an SSH server using public key authentication.
IncludeFile "CkSsh.pb" IncludeFile "CkSshKey.pb" Procedure ChilkatExample() ; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. ssh.i = CkSsh::ckCreate() If ssh.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Set some timeouts, in milliseconds: CkSsh::setCkConnectTimeoutMs(ssh, 5000) CkSsh::setCkIdleTimeoutMs(ssh, 15000) ; Connect to the SSH server. ; The standard SSH port = 22 ; The hostname may be a hostname or IP address. hostname.s = "sftp.example.com" port.i = 22 success.i = CkSsh::ckConnect(ssh,hostname,port) If success <> 1 Debug CkSsh::ckLastErrorText(ssh) CkSsh::ckDispose(ssh) ProcedureReturn EndIf key.i = CkSshKey::ckCreate() If key.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Read the PEM file into a string variable: ; (This does not load the PEM file into the key. The LoadText ; method is a convenience method for loading the full contents of ANY text ; file into a string variable.) privKey.s = CkSshKey::ckLoadText(key,"myPrivateKey.pem") If CkSshKey::ckLastMethodSuccess(key) <> 1 Debug CkSshKey::ckLastErrorText(key) CkSsh::ckDispose(ssh) CkSshKey::ckDispose(key) ProcedureReturn EndIf ; Load a private key from a PEM string: ; (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. ; (For PuTTY keys, call FromPuttyPrivateKey instead.) success = CkSshKey::ckFromOpenSshPrivateKey(key,privKey) If success <> 1 Debug CkSshKey::ckLastErrorText(key) CkSsh::ckDispose(ssh) CkSshKey::ckDispose(key) ProcedureReturn EndIf ; Authenticate with the SSH server using the login and ; private key. (The corresponding public key should've ; been installed on the SSH server beforehand.) success = CkSsh::ckAuthenticatePk(ssh,"myLogin",key) If success <> 1 Debug CkSsh::ckLastErrorText(ssh) CkSsh::ckDispose(ssh) CkSshKey::ckDispose(key) ProcedureReturn EndIf Debug CkSsh::ckLastErrorText(ssh) Debug "Public-Key Authentication Successful!" CkSsh::ckDispose(ssh) CkSshKey::ckDispose(key) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.