Class SshClient
- Namespace
- Renci.SshNet
- Assembly
- Renci.SshNet.dll
Provides client connection to SSH server.
public class SshClient : BaseClient, ISshClient, 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, orusername
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, orusername
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
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
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
orencoding
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
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.