Pascal (Lazarus/Delphi)
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
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.