![]() |
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
(Delphi ActiveX) SSH Keyboard AuthenticationDemonstrates how to implement keyboard authentication with an SSH server.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB; ... procedure TForm1.Button1Click(Sender: TObject); var ssh: TChilkatSsh; hostname: WideString; port: Integer; success: Integer; xmlResponse: WideString; xml: TChilkatXml; begin // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. ssh := TChilkatSsh.Create(Self); // Set some timeouts, in milliseconds: ssh.ConnectTimeoutMs := 5000; ssh.IdleTimeoutMs := 15000; // Connect to the SSH server. // The standard SSH port = 22 // The hostname may be a hostname or IP address. hostname := 'sftp.example.com'; port := 22; success := ssh.Connect(hostname,port); if (success <> 1) then begin Memo1.Lines.Add(ssh.LastErrorText); Exit; end; // Begin keyboard authentication.. xmlResponse := ssh.StartKeyboardAuth('myLogin'); if (ssh.LastMethodSuccess <> 1) then begin Memo1.Lines.Add(ssh.LastErrorText); Exit; end; // If a user authentication banner was received, then your app // may display it prior to prompting for the password. Memo1.Lines.Add('UserAuthBanner: ' + ssh.UserAuthBanner); xml := TChilkatXml.Create(Self); success := xml.LoadXml(xmlResponse); // Assume LoadXml succeeds for the example.. if (xml.HasChildWithTag('success') = 1) then begin Memo1.Lines.Add('No password required, already authenticated.'); Exit; end; if (xml.HasChildWithTag('error') = 1) then begin Memo1.Lines.Add('Authentication already failed.'); Exit; end; // See the online reference documentation for Chilkat SSH. // The XML returned by StartKeyboardAuth will contain an infoRequest // with one or more prompts that your application may choose to display. // Call ContinueKeyboardAuth, passing in the whatever information is requires (such as the password). // Typically, keyboard authentication requires one call to ContinueKeyboardAuth // using the password. Theoretically, the SSH server could prompt for additional pieces // of information. The authentication is completed when the XML returned contains // either a "success" or "error" child node. // This example asumes only one call to ContinueKeyboardAuth is required. xmlResponse := ssh.ContinueKeyboardAuth('myPassword'); if (ssh.LastMethodSuccess <> 1) then begin Memo1.Lines.Add(ssh.LastErrorText); Exit; end; success := xml.LoadXml(xmlResponse); // Assume LoadXml succeeds for the example.. if (xml.HasChildWithTag('success') = 1) then begin Memo1.Lines.Add('SSH Keyboard Authentication Successful!'); Exit; end; if (xml.HasChildWithTag('error') = 1) then begin Memo1.Lines.Add('Authentication failed.'); Exit; end; end; |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.