Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

Disconnect from an SSH Server

See more SSH Examples

Demonstrates the Chilkat Ssh.Disconnect method, which closes the current SSH transport. It takes no arguments, is harmless to call when nothing is connected, and may be called repeatedly.

Background: Disconnecting tears down the transport and every channel opened on it; afterward IsConnected is false and NumOpenChannels is 0. Bytes already buffered for a former channel can still be read after disconnect, which is useful when you want to drain a command's final output before releasing the session.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
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.Disconnect method, which closes the current SSH transport.  It takes no
  //  arguments, is safe to call when no connection exists, and may be called repeatedly.

  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;

  //  ... use the SSH connection ...

  //  Close the SSH connection.
  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.