Sample code for 30+ languages & platforms
Lazarus Pascal

Send an SSH IGNORE Message

See more SSH Examples

Demonstrates the Chilkat Ssh.SendIgnore method, which sends an SSH IGNORE message. It takes no arguments. The server does not reply, but a successful send helps confirm the connection is still writable. No channel is required.

Background: The SSH IGNORE message is discarded by the peer by design; its usefulness is as a lightweight keep-alive or liveness probe. Because it exercises the actual write path, a successful SendIgnore is stronger evidence than CheckConnection that the link is still usable, without side effects on any channel.

Chilkat Lazarus Pascal Downloads

Lazarus Pascal
program ChilkatDemo;

// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  SysUtils,
  CkDllLoader,
  Chilkat.Ssh;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  success: Boolean;
  ssh: TSsh;
  sshPort: Integer;
  password: string;

begin
  success := False;

  //  Demonstrates the Ssh.SendIgnore method, which sends an SSH IGNORE message.  It takes no
  //  arguments.  The server does not reply, but a successful send helps confirm the connection is
  //  still writable.  No channel is required.

  ssh := TSsh.Create;

  //  Connect to the SSH server.  Port 22 is the usual SSH port.
  sshPort := 22;
  success := ssh.Connect('ssh.example.com',sshPort);
  if (success = False) then
    begin
      WriteLn(ssh.LastErrorText);
      Exit;
    end;

  //  Normally you would not hard-code the password in source.  You should instead obtain it
  //  from an interactive prompt, environment variable, or a secrets vault.
  password := 'mySshPassword';

  success := ssh.AuthenticatePw('mySshLogin',password);
  if (success = False) then
    begin
      WriteLn(ssh.LastErrorText);
      Exit;
    end;

  //  Send an IGNORE message to verify the connection is still writable.
  success := ssh.SendIgnore();
  if (success = False) then
    begin
      WriteLn(ssh.LastErrorText);
      Exit;
    end;
  WriteLn('IGNORE message sent.');

  ssh.Disconnect();


  ssh.Free;

end;

// ---------------------------------------------------------------------------

begin

  try
    RunDemo;
  except
    on E: Exception do
      WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
  end;

  WriteLn;
  {$IFDEF MSWINDOWS}
  WriteLn('Press Enter to exit...');
  ReadLn;
  {$ENDIF}
end.