Class SshClient
- Namespace
 - Renci.SshNet
 
- Assembly
 - Renci.SshNet.dll
 
Provides client connection to SSH server.
public class SshClient : BaseClient, ISshClient, IBaseClient, IDisposableInheritance
Implements
Inherited Members
Constructors
SshClient(ConnectionInfo)
Initializes a new instance of the Renci.SshNet.SshClient class.
public SshClient(ConnectionInfo connectionInfo)Parameters
connectionInfoConnectionInfo- 
The connection info.
 
Exceptions
- ArgumentNullException
 - 
connectionInfois null. 
SshClient(string, int, string, string)
Initializes a new instance of the Renci.SshNet.SshClient class.
public SshClient(string host, int port, string username, string password)Parameters
hoststring- 
Connection host.
 portint- 
Connection port.
 usernamestring- 
Authentication username.
 passwordstring- 
Authentication password.
 
Exceptions
- ArgumentNullException
 - 
passwordis null. - ArgumentException
 - 
hostis invalid, orusernameis null or contains only whitespace characters. - ArgumentOutOfRangeException
 - 
portis not within System.Net.IPEndPoint.MinPort and System.Net.IPEndPoint.MaxPort. 
SshClient(string, string, string)
Initializes a new instance of the Renci.SshNet.SshClient class.
public SshClient(string host, string username, string password)Parameters
hoststring- 
Connection host.
 usernamestring- 
Authentication username.
 passwordstring- 
Authentication password.
 
Exceptions
- ArgumentNullException
 - 
passwordis null. - ArgumentException
 - 
hostis invalid, orusernameis null or contains only whitespace characters. 
SshClient(string, int, string, params IPrivateKeySource[])
Initializes a new instance of the Renci.SshNet.SshClient class.
[SuppressMessage("Microsoft.Reliability", "CA2000:DisposeObjectsBeforeLosingScope", Justification = "Disposed in Dispose(bool) method.")]
public SshClient(string host, int port, string username, params IPrivateKeySource[] keyFiles)Parameters
hoststring- 
Connection host.
 portint- 
Connection port.
 usernamestring- 
Authentication username.
 keyFilesIPrivateKeySource[]- 
Authentication private key file(s) .
 
Exceptions
- ArgumentNullException
 - 
keyFilesis null. - ArgumentException
 - 
hostis invalid, -or-usernameis null or contains only whitespace characters. - ArgumentOutOfRangeException
 - 
portis not within System.Net.IPEndPoint.MinPort and System.Net.IPEndPoint.MaxPort. 
SshClient(string, string, params IPrivateKeySource[])
Initializes a new instance of the Renci.SshNet.SshClient class.
public SshClient(string host, string username, params IPrivateKeySource[] keyFiles)Parameters
hoststring- 
Connection host.
 usernamestring- 
Authentication username.
 keyFilesIPrivateKeySource[]- 
Authentication private key file(s) .
 
Exceptions
- ArgumentNullException
 - 
keyFilesis null. - ArgumentException
 - 
hostis invalid, -or-usernameis 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
portForwardedPort- 
The 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
commandTextstring- 
The command text.
 
Returns
- SshCommand
 - 
Renci.SshNet.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
 - 
Renci.SshNet.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, 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
inputStream- 
The input.
 outputStream- 
The output.
 extendedOutputStream- 
The extended output.
 terminalNamestring- 
Name of the terminal.
 columnsuint- 
The columns.
 rowsuint- 
The rows.
 widthuint- 
The width.
 heightuint- 
The height.
 terminalModesIDictionary<TerminalModes, uint>?- 
The terminal mode.
 bufferSizeint- 
Size of the internal read buffer.
 
Returns
- Shell
 - 
Returns a representation of a Renci.SshNet.Shell object.
 
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
inputStream- 
The input.
 outputStream- 
The output.
 extendedOutputStream- 
The extended output.
 terminalNamestring- 
Name of the terminal.
 columnsuint- 
The columns.
 rowsuint- 
The rows.
 widthuint- 
The width.
 heightuint- 
The height.
 terminalModesIDictionary<TerminalModes, uint>- 
The terminal mode.
 
Returns
- Shell
 - 
Returns a representation of a Renci.SshNet.Shell object.
 
Exceptions
- SshConnectionException
 - 
Client is not connected.
 
CreateShell(Stream, Stream, Stream)
Creates the shell.
public Shell CreateShell(Stream input, Stream output, Stream extendedOutput)Parameters
Returns
- Shell
 - 
Returns a representation of a Renci.SshNet.Shell object.
 
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
encodingEncoding- 
The encoding to use to send the input.
 inputstring- 
The input.
 outputStream- 
The output.
 extendedOutputStream- 
The extended output.
 terminalNamestring- 
Name of the terminal.
 columnsuint- 
The columns.
 rowsuint- 
The rows.
 widthuint- 
The width.
 heightuint- 
The height.
 terminalModesIDictionary<TerminalModes, uint>?- 
The terminal mode.
 bufferSizeint- 
Size of the internal read buffer.
 
Returns
- Shell
 - 
Returns a representation of a Renci.SshNet.Shell object.
 
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
encodingEncoding- 
The encoding.
 inputstring- 
The input.
 outputStream- 
The output.
 extendedOutputStream- 
The extended output.
 terminalNamestring- 
Name of the terminal.
 columnsuint- 
The columns.
 rowsuint- 
The rows.
 widthuint- 
The width.
 heightuint- 
The height.
 terminalModesIDictionary<TerminalModes, uint>- 
The terminal modes.
 
Returns
- Shell
 - 
Returns a representation of a Renci.SshNet.Shell object.
 
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
encodingEncoding- 
The encoding.
 inputstring- 
The input.
 outputStream- 
The output.
 extendedOutputStream- 
The extended output.
 
Returns
- Shell
 - 
Returns a representation of a Renci.SshNet.Shell object.
 
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
inputStream- 
The input.
 outputStream- 
The output.
 extendedOutputStream- 
The extended output.
 bufferSizeint- 
Size of the internal read buffer.
 
Returns
- Shell
 - 
Returns a representation of a Renci.SshNet.Shell object.
 
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
terminalNamestring- 
The
TERMenvironment variable. columnsuint- 
The terminal width in columns.
 rowsuint- 
The terminal height in rows.
 widthuint- 
The terminal width in pixels.
 heightuint- 
The terminal height in pixels.
 bufferSizeint- 
The size of the buffer.
 
Returns
- ShellStream
 - 
The created Renci.SshNet.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
terminalNamestring- 
The
TERMenvironment variable. columnsuint- 
The terminal width in columns.
 rowsuint- 
The terminal height in rows.
 widthuint- 
The terminal width in pixels.
 heightuint- 
The terminal height in pixels.
 bufferSizeint- 
The size of the buffer.
 terminalModeValuesIDictionary<TerminalModes, uint>?- 
The terminal mode values.
 
Returns
- ShellStream
 - 
The created Renci.SshNet.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
bufferSizeint- 
The size of the buffer.
 
Returns
- ShellStream
 - 
The created Renci.SshNet.ShellStream instance.
 
Exceptions
- SshConnectionException
 - 
Client is not connected.
 
Dispose(bool)
Releases unmanaged and - optionally - managed resources.
protected override void Dispose(bool disposing)Parameters
disposingbool- 
true 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
portForwardedPort- 
Forwarded port.
 
Exceptions
- ArgumentNullException
 - 
portis null. 
RunCommand(string)
Creates and executes the command.
public SshCommand RunCommand(string commandText)Parameters
commandTextstring- 
The command text.
 
Returns
- SshCommand
 - 
Returns an instance of Renci.SshNet.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.