Table of Contents

Class SshClient

Namespace
Renci.SshNet
Assembly
Renci.SshNet.dll

Provides client connection to SSH server.

public class SshClient : BaseClient, IBaseClient, IDisposable

Inheritance

Implements

Inherited Members

Constructors

SshClient(ConnectionInfo)

Initializes a new instance of the Renci.SshNet.SshClient class.

public SshClient(ConnectionInfo connectionInfo)

Parameters

connectionInfo ConnectionInfo

The connection info.

Exceptions

ArgumentNullException

connectionInfo is 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

host string

Connection host.

port int

Connection port.

username string

Authentication username.

password string

Authentication password.

Exceptions

ArgumentNullException

password is null.

ArgumentException

host is invalid, or username is null or contains only whitespace characters.

ArgumentOutOfRangeException

port is 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

host string

Connection host.

username string

Authentication username.

password string

Authentication password.

Exceptions

ArgumentNullException

password is null.

ArgumentException

host is invalid, or username is null or contains only whitespace characters.

SshClient(string, int, string, params IPrivateKeySource[])

Initializes a new instance of the Renci.SshNet.SshClient class.

public SshClient(string host, int port, string username, params IPrivateKeySource[] keyFiles)

Parameters

host string

Connection host.

port int

Connection port.

username string

Authentication username.

keyFiles IPrivateKeySource[]

Authentication private key file(s) .

Exceptions

ArgumentNullException

keyFiles is null.

ArgumentException

host is invalid, -or- username is null or contains only whitespace characters.

ArgumentOutOfRangeException

port is 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

host string

Connection host.

username string

Authentication username.

keyFiles IPrivateKeySource[]

Authentication private key file(s) .

Exceptions

ArgumentNullException

keyFiles is null.

ArgumentException

host is invalid, -or- username is null or contains only whitespace characters.

Properties

ForwardedPorts

Gets the list of forwarded ports.

public IEnumerable<ForwardedPort> ForwardedPorts { get; }

Property Value

IEnumerable<ForwardedPort>

Methods

AddForwardedPort(ForwardedPort)

Adds the forwarded port.

public void AddForwardedPort(ForwardedPort port)

Parameters

port ForwardedPort

The port.

Exceptions

InvalidOperationException

Forwarded port is already added to a different client.

ArgumentNullException

port is null.

SshConnectionException

Client is not connected.

CreateCommand(string)

Creates the command to be executed.

public SshCommand CreateCommand(string commandText)

Parameters

commandText string

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

commandText string

The command text.

encoding Encoding

The encoding to use for results.

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

commandText or encoding is 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

input Stream

The input.

output Stream

The output.

extendedOutput Stream

The extended output.

terminalName string

Name of the terminal.

columns uint

The columns.

rows uint

The rows.

width uint

The width.

height uint

The height.

terminalModes IDictionary<TerminalModes, uint>?

The terminal mode.

bufferSize int

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

input Stream

The input.

output Stream

The output.

extendedOutput Stream

The extended output.

terminalName string

Name of the terminal.

columns uint

The columns.

rows uint

The rows.

width uint

The width.

height uint

The height.

terminalModes IDictionary<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

input Stream

The input.

output Stream

The output.

extendedOutput Stream

The extended output.

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

encoding Encoding

The encoding to use to send the input.

input string

The input.

output Stream

The output.

extendedOutput Stream

The extended output.

terminalName string

Name of the terminal.

columns uint

The columns.

rows uint

The rows.

width uint

The width.

height uint

The height.

terminalModes IDictionary<TerminalModes, uint>?

The terminal mode.

bufferSize int

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

encoding Encoding

The encoding.

input string

The input.

output Stream

The output.

extendedOutput Stream

The extended output.

terminalName string

Name of the terminal.

columns uint

The columns.

rows uint

The rows.

width uint

The width.

height uint

The height.

terminalModes IDictionary<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

encoding Encoding

The encoding.

input string

The input.

output Stream

The output.

extendedOutput Stream

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

input Stream

The input.

output Stream

The output.

extendedOutput Stream

The extended output.

bufferSize int

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

terminalName string

The TERM environment variable.

columns uint

The terminal width in columns.

rows uint

The terminal width in rows.

width uint

The terminal width in pixels.

height uint

The terminal height in pixels.

bufferSize int

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

terminalName string

The TERM environment variable.

columns uint

The terminal width in columns.

rows uint

The terminal width in rows.

width uint

The terminal width in pixels.

height uint

The terminal height in pixels.

bufferSize int

The size of the buffer.

terminalModeValues IDictionary<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

bufferSize int

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

disposing bool

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

port ForwardedPort

Forwarded port.

Exceptions

ArgumentNullException

port is null.

RunCommand(string)

Creates and executes the command.

public SshCommand RunCommand(string commandText)

Parameters

commandText string

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

commandText is null.