![]()  | 
  
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
 
      (Visual FoxPro) SSH Auth Failure Reason (AuthenticatePwPk)This example demonstrates how to determine the failure reason for the case where both a password and private key are required for authentication. If authentication fails, was it because of an invalid private key, or an invalid password? Note: This example requires Chilkat v11.0.0 or greater. 
 LOCAL lnSuccess LOCAL loKey LOCAL loSsh LOCAL loJson lnSuccess = 0 * This example assumes the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * Load a private key to be used for SSH authentication. loKey = CreateObject('Chilkat.SshKey') loKey.Password = "key_password" lnSuccess = loKey.FromOpenSshPrivateKey(loKey.LoadText("qa_data/my_private_key_file")) IF (lnSuccess = 0) THEN ? loKey.LastErrorText RELEASE loKey CANCEL ENDIF loSsh = CreateObject('Chilkat.Ssh') lnSuccess = loSsh.Connect("ssh.example.com",22) IF (lnSuccess = 0) THEN ? loSsh.LastErrorText RELEASE loKey RELEASE loSsh CANCEL ENDIF * Authenticate using both a password and private key. lnSuccess = loSsh.AuthenticatePwPk("myLogin","myPassword",loKey) IF (lnSuccess = 1) THEN ? "Authentication is successful!" RELEASE loKey RELEASE loSsh CANCEL ENDIF * If we get here, it means the authentication failed. * Examine the last JSON data to get information.. loJson = CreateObject('Chilkat.JsonObject') loSsh.GetLastJsonData(loJson) loJson.EmitCompact = 0 * This is the JSON if the key is correct, but the password is incorrect: * { * "public_key_type": "rsa", * "partialAuthResult": "publickey success. continue to authenticate with password...", * "authResult": "failed", * "authFailReason": "Password is incorrect" * } * This is the JSON if the key is incorrect. We won't know if the password is also incorrect until * the key is made correct so that authentication proceeds to check the password. * { * "public_key_type": "rsa", * "authResult": "failed", * "authFailReason": "Key is incorrect" * } * To get the authResult anbd authFailReason: ? "authResult: " + loJson.StringOf("authResult") ? "authFailReason: " + loJson.StringOf("authFailReason") RELEASE loKey RELEASE loSsh RELEASE loJson  | 
  ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.