Class SshClient
Provides client connection to SSH server.
public class SshClient : BaseClient, IBaseClient, IDisposable
- Inheritance
-
SshClient
- Implements
- Inherited Members
Constructors
SshClient(ConnectionInfo)
Initializes a new instance of the SshClient class.
public SshClient(ConnectionInfo connectionInfo)
Parameters
connectionInfoConnectionInfoThe connection info.
Exceptions
- ArgumentNullException
connectionInfois null.
SshClient(string, int, string, params IPrivateKeySource[])
Initializes a new instance of the SshClient class.
public SshClient(string host, int port, string username, params IPrivateKeySource[] keyFiles)
Parameters
hoststringConnection host.
portintConnection port.
usernamestringAuthentication username.
keyFilesIPrivateKeySource[]Authentication private key file(s) .
Exceptions
- ArgumentNullException
keyFilesis null.- ArgumentException
hostis invalid, -or-usernameis null or contains only whitespace characters.- ArgumentOutOfRangeException
SshClient(string, int, string, string)
Initializes a new instance of the SshClient class.
public SshClient(string host, int port, string username, string password)
Parameters
hoststringConnection host.
portintConnection port.
usernamestringAuthentication username.
passwordstringAuthentication password.
Exceptions
- ArgumentNullException
passwordis null.- ArgumentException
hostis invalid, orusernameis null or contains only whitespace characters.- ArgumentOutOfRangeException
SshClient(string, string, params IPrivateKeySource[])
Initializes a new instance of the SshClient class.
public SshClient(string host, string username, params IPrivateKeySource[] keyFiles)
Parameters
hoststringConnection host.
usernamestringAuthentication username.
keyFilesIPrivateKeySource[]Authentication private key file(s) .
Exceptions
- ArgumentNullException
keyFilesis null.- ArgumentException
hostis invalid, -or-usernameis null or contains only whitespace characters.
SshClient(string, string, string)
Initializes a new instance of the SshClient class.
public SshClient(string host, string username, string password)
Parameters
hoststringConnection host.
usernamestringAuthentication username.
passwordstringAuthentication password.
Exceptions
- ArgumentNullException
passwordis null.- ArgumentException
hostis invalid, orusernameis null or contains only whitespace characters.
Properties
ForwardedPorts
Gets the list of forwarded ports.
public IEnumerable<ForwardedPort> ForwardedPorts { get; }
Property Value
Methods
AddForwardedPort(ForwardedPort)
Adds the forwarded port.
public void AddForwardedPort(ForwardedPort port)
Parameters
portForwardedPortThe port.
Exceptions
- InvalidOperationException
Forwarded port is already added to a different client.
- ArgumentNullException
portis null.- SshConnectionException
Client is not connected.
CreateCommand(string)
Creates the command to be executed.
public SshCommand CreateCommand(string commandText)
Parameters
commandTextstringThe command text.
Returns
- SshCommand
SshCommand object.
Exceptions
- SshConnectionException
Client is not connected.
CreateCommand(string, Encoding)
Creates the command to be executed with specified encoding.
public SshCommand CreateCommand(string commandText, Encoding encoding)
Parameters
Returns
- SshCommand
SshCommand object which uses specified encoding.
Remarks
This method will change current default encoding.
Exceptions
- SshConnectionException
Client is not connected.
- ArgumentNullException
commandTextorencodingis null.
CreateShell(Stream, Stream, Stream)
Creates the shell.
public Shell CreateShell(Stream input, Stream output, Stream extendedOutput)
Parameters
Returns
Exceptions
- SshConnectionException
Client is not connected.
CreateShell(Stream, Stream, Stream, string, uint, uint, uint, uint, IDictionary<TerminalModes, uint>)
Creates the shell.
public Shell CreateShell(Stream input, Stream output, Stream extendedOutput, string terminalName, uint columns, uint rows, uint width, uint height, IDictionary<TerminalModes, uint> terminalModes)
Parameters
inputStreamThe input.
outputStreamThe output.
extendedOutputStreamThe extended output.
terminalNamestringName of the terminal.
columnsuintThe columns.
rowsuintThe rows.
widthuintThe width.
heightuintThe height.
terminalModesIDictionary<TerminalModes, uint>The terminal mode.
Returns
Exceptions
- SshConnectionException
Client is not connected.
CreateShell(Stream, Stream, Stream, string, uint, uint, uint, uint, IDictionary<TerminalModes, uint>?, int)
Creates the shell.
public Shell CreateShell(Stream input, Stream output, Stream extendedOutput, string terminalName, uint columns, uint rows, uint width, uint height, IDictionary<TerminalModes, uint>? terminalModes, int bufferSize)
Parameters
inputStreamThe input.
outputStreamThe output.
extendedOutputStreamThe extended output.
terminalNamestringName of the terminal.
columnsuintThe columns.
rowsuintThe rows.
widthuintThe width.
heightuintThe height.
terminalModesIDictionary<TerminalModes, uint>The terminal mode.
bufferSizeintSize of the internal read buffer.
Returns
Exceptions
- SshConnectionException
Client is not connected.
CreateShell(Encoding, string, Stream, Stream)
Creates the shell.
public Shell CreateShell(Encoding encoding, string input, Stream output, Stream extendedOutput)
Parameters
encodingEncodingThe encoding.
inputstringThe input.
outputStreamThe output.
extendedOutputStreamThe extended output.
Returns
Exceptions
- SshConnectionException
Client is not connected.
CreateShell(Encoding, string, Stream, Stream, string, uint, uint, uint, uint, IDictionary<TerminalModes, uint>)
Creates the shell.
public Shell CreateShell(Encoding encoding, string input, Stream output, Stream extendedOutput, string terminalName, uint columns, uint rows, uint width, uint height, IDictionary<TerminalModes, uint> terminalModes)
Parameters
encodingEncodingThe encoding.
inputstringThe input.
outputStreamThe output.
extendedOutputStreamThe extended output.
terminalNamestringName of the terminal.
columnsuintThe columns.
rowsuintThe rows.
widthuintThe width.
heightuintThe height.
terminalModesIDictionary<TerminalModes, uint>The terminal modes.
Returns
Exceptions
- SshConnectionException
Client is not connected.
CreateShell(Encoding, string, Stream, Stream, string, uint, uint, uint, uint, IDictionary<TerminalModes, uint>?, int)
Creates the shell.
public Shell CreateShell(Encoding encoding, string input, Stream output, Stream extendedOutput, string terminalName, uint columns, uint rows, uint width, uint height, IDictionary<TerminalModes, uint>? terminalModes, int bufferSize)
Parameters
encodingEncodingThe encoding to use to send the input.
inputstringThe input.
outputStreamThe output.
extendedOutputStreamThe extended output.
terminalNamestringName of the terminal.
columnsuintThe columns.
rowsuintThe rows.
widthuintThe width.
heightuintThe height.
terminalModesIDictionary<TerminalModes, uint>The terminal mode.
bufferSizeintSize of the internal read buffer.
Returns
Exceptions
- SshConnectionException
Client is not connected.
CreateShellNoTerminal(Stream, Stream, Stream, int)
Creates the shell without allocating a pseudo terminal,
similar to the ssh -T option.
public Shell CreateShellNoTerminal(Stream input, Stream output, Stream extendedOutput, int bufferSize = -1)
Parameters
inputStreamThe input.
outputStreamThe output.
extendedOutputStreamThe extended output.
bufferSizeintSize of the internal read buffer.
Returns
Exceptions
- SshConnectionException
Client is not connected.
CreateShellStream(string, uint, uint, uint, uint, int)
Creates the shell stream.
public ShellStream CreateShellStream(string terminalName, uint columns, uint rows, uint width, uint height, int bufferSize)
Parameters
terminalNamestringThe
TERMenvironment variable.columnsuintThe terminal width in columns.
rowsuintThe terminal width in rows.
widthuintThe terminal width in pixels.
heightuintThe terminal height in pixels.
bufferSizeintThe size of the buffer.
Returns
- ShellStream
The created ShellStream instance.
Remarks
The TERM environment variable contains an identifier for the text window's capabilities.
You can get a detailed list of these capabilities by using the ‘infocmp’ command.
The column/row dimensions override the pixel dimensions(when nonzero). Pixel dimensions refer to the drawable area of the window.
Exceptions
- SshConnectionException
Client is not connected.
CreateShellStream(string, uint, uint, uint, uint, int, IDictionary<TerminalModes, uint>?)
Creates the shell stream.
public ShellStream CreateShellStream(string terminalName, uint columns, uint rows, uint width, uint height, int bufferSize, IDictionary<TerminalModes, uint>? terminalModeValues)
Parameters
terminalNamestringThe
TERMenvironment variable.columnsuintThe terminal width in columns.
rowsuintThe terminal width in rows.
widthuintThe terminal width in pixels.
heightuintThe terminal height in pixels.
bufferSizeintThe size of the buffer.
terminalModeValuesIDictionary<TerminalModes, uint>The terminal mode values.
Returns
- ShellStream
The created ShellStream instance.
Remarks
The TERM environment variable contains an identifier for the text window's capabilities.
You can get a detailed list of these capabilities by using the ‘infocmp’ command.
The column/row dimensions override the pixel dimensions(when non-zero). Pixel dimensions refer to the drawable area of the window.
Exceptions
- SshConnectionException
Client is not connected.
CreateShellStreamNoTerminal(int)
Creates the shell stream without allocating a pseudo terminal,
similar to the ssh -T option.
public ShellStream CreateShellStreamNoTerminal(int bufferSize = -1)
Parameters
bufferSizeintThe size of the buffer.
Returns
- ShellStream
The created ShellStream instance.
Exceptions
- SshConnectionException
Client is not connected.
Dispose(bool)
Releases unmanaged and - optionally - managed resources.
protected override void Dispose(bool disposing)
Parameters
disposingbooltrue to release both managed and unmanaged resources; false to release only unmanaged resources.
OnDisconnected()
Stops forwarded ports.
protected override void OnDisconnected()
OnDisconnecting()
Called when client is disconnecting from the server.
protected override void OnDisconnecting()
RemoveForwardedPort(ForwardedPort)
Stops and removes the forwarded port from the list.
public void RemoveForwardedPort(ForwardedPort port)
Parameters
portForwardedPortForwarded port.
Exceptions
- ArgumentNullException
portis null.
RunCommand(string)
Creates and executes the command.
public SshCommand RunCommand(string commandText)
Parameters
commandTextstringThe command text.
Returns
- SshCommand
Returns an instance of SshCommand with execution results.
Remarks
This method internally uses asynchronous calls.
Exceptions
- ArgumentException
CommandText property is empty.
- SshException
Invalid Operation - An existing channel was used to execute this command.
- InvalidOperationException
Asynchronous operation is already in progress.
- SshConnectionException
Client is not connected.
- ArgumentNullException
commandTextis null.