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.