Table of Contents

Class Session

Namespace
Renci.SshNet
Assembly
Renci.SshNet.dll

Provides functionality to connect and interact with SSH server.

public class Session : IDisposable
Inheritance
Session
Implements
Inherited Members

Properties

ClientInitMessage

Gets the client init message.

public Message ClientInitMessage { get; }

Property Value

Message

The client init message.

ClientVersion

Gets the client version string.

public string ClientVersion { get; }

Property Value

string

The client version.

ConnectionInfo

Gets the connection info.

public ConnectionInfo ConnectionInfo { get; }

Property Value

ConnectionInfo

The connection info.

IsConnected

Gets a value indicating whether the session is connected.

public bool IsConnected { get; }

Property Value

bool

true if the session is connected; otherwise, false.

Remarks

This methods returns true in all but the following cases:

  • The Session is disposed.
  • The SSH_MSG_DISCONNECT message - which is used to disconnect from the server - has been sent.
  • The client has not been authenticated successfully.
  • The listener thread - which is used to receive messages from the server - has stopped.
  • The socket used to communicate with the server is no longer connected.

ServerVersion

Gets the server version string.

public string ServerVersion { get; }

Property Value

string

The server version.

SessionId

Gets the session id.

public byte[] SessionId { get; }

Property Value

byte[]

The session id, or null if the client has not been authenticated.

SessionSemaphore

Gets the session semaphore that controls session channels.

public SemaphoreSlim SessionSemaphore { get; }

Property Value

SemaphoreSlim

The session semaphore.

Methods

Connect()

Connects to the server.

public void Connect()

Exceptions

SocketException

Socket connection to the SSH server or proxy server could not be established, or an error occurred while resolving the hostname.

SshConnectionException

SSH session could not be established.

SshAuthenticationException

Authentication of SSH session failed.

ProxyException

Failed to establish proxy connection.

ConnectAsync(CancellationToken)

Asynchronously connects to the server.

public Task ConnectAsync(CancellationToken cancellationToken)

Parameters

cancellationToken CancellationToken

The CancellationToken to observe.

Returns

Task

A Task that represents the asynchronous connect operation.

Exceptions

SocketException

Socket connection to the SSH server or proxy server could not be established, or an error occurred while resolving the hostname.

SshConnectionException

SSH session could not be established.

SshAuthenticationException

Authentication of SSH session failed.

ProxyException

Failed to establish proxy connection.

Disconnect()

Disconnects from the server.

public void Disconnect()

Remarks

This sends a SSH_MSG_DISCONNECT message to the server, waits for the server to close the socket on its end and subsequently closes the client socket.

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public void Dispose()

Dispose(bool)

Releases unmanaged and - optionally - managed resources.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

true to release both managed and unmanaged resources; false to release only unmanaged resources.

~Session()

Finalizes an instance of the Session class.

protected ~Session()

RegisterMessage(string)

Registers SSH message with the session.

public void RegisterMessage(string messageName)

Parameters

messageName string

The name of the message to register with the session.

UnRegisterMessage(string)

Unregister SSH message from the session.

public void UnRegisterMessage(string messageName)

Parameters

messageName string

The name of the message to unregister with the session.

Events

ChannelCloseReceived

Occurs when ChannelCloseMessage message received

public event EventHandler<MessageEventArgs<ChannelCloseMessage>> ChannelCloseReceived

Event Type

EventHandler<MessageEventArgs<ChannelCloseMessage>>

ChannelDataReceived

Occurs when ChannelDataMessage message received

public event EventHandler<MessageEventArgs<ChannelDataMessage>> ChannelDataReceived

Event Type

EventHandler<MessageEventArgs<ChannelDataMessage>>

ChannelEofReceived

Occurs when ChannelEofMessage message received

public event EventHandler<MessageEventArgs<ChannelEofMessage>> ChannelEofReceived

Event Type

EventHandler<MessageEventArgs<ChannelEofMessage>>

ChannelExtendedDataReceived

Occurs when ChannelExtendedDataMessage message received

public event EventHandler<MessageEventArgs<ChannelExtendedDataMessage>> ChannelExtendedDataReceived

Event Type

EventHandler<MessageEventArgs<ChannelExtendedDataMessage>>

ChannelFailureReceived

Occurs when ChannelFailureMessage message received

public event EventHandler<MessageEventArgs<ChannelFailureMessage>> ChannelFailureReceived

Event Type

EventHandler<MessageEventArgs<ChannelFailureMessage>>

ChannelOpenConfirmationReceived

Occurs when ChannelOpenConfirmationMessage message received

public event EventHandler<MessageEventArgs<ChannelOpenConfirmationMessage>> ChannelOpenConfirmationReceived

Event Type

EventHandler<MessageEventArgs<ChannelOpenConfirmationMessage>>

ChannelOpenFailureReceived

Occurs when ChannelOpenFailureMessage message received

public event EventHandler<MessageEventArgs<ChannelOpenFailureMessage>> ChannelOpenFailureReceived

Event Type

EventHandler<MessageEventArgs<ChannelOpenFailureMessage>>

ChannelOpenReceived

Occurs when ChannelOpenMessage message received

public event EventHandler<MessageEventArgs<ChannelOpenMessage>> ChannelOpenReceived

Event Type

EventHandler<MessageEventArgs<ChannelOpenMessage>>

ChannelRequestReceived

Occurs when ChannelRequestMessage message received

public event EventHandler<MessageEventArgs<ChannelRequestMessage>> ChannelRequestReceived

Event Type

EventHandler<MessageEventArgs<ChannelRequestMessage>>

ChannelSuccessReceived

Occurs when ChannelSuccessMessage message received

public event EventHandler<MessageEventArgs<ChannelSuccessMessage>> ChannelSuccessReceived

Event Type

EventHandler<MessageEventArgs<ChannelSuccessMessage>>

ChannelWindowAdjustReceived

Occurs when ChannelWindowAdjustMessage message received

public event EventHandler<MessageEventArgs<ChannelWindowAdjustMessage>> ChannelWindowAdjustReceived

Event Type

EventHandler<MessageEventArgs<ChannelWindowAdjustMessage>>

Disconnected

Occurs when session has been disconnected from the server.

public event EventHandler<EventArgs> Disconnected

Event Type

EventHandler<EventArgs>

ErrorOccured

Occurs when an error occurred.

public event EventHandler<ExceptionEventArgs> ErrorOccured

Event Type

EventHandler<ExceptionEventArgs>

HostKeyReceived

Occurs when host key received.

public event EventHandler<HostKeyEventArgs> HostKeyReceived

Event Type

EventHandler<HostKeyEventArgs>

RequestFailureReceived

Occurs when RequestFailureMessage message received

public event EventHandler<MessageEventArgs<RequestFailureMessage>> RequestFailureReceived

Event Type

EventHandler<MessageEventArgs<RequestFailureMessage>>

RequestSuccessReceived

Occurs when RequestSuccessMessage message received

public event EventHandler<MessageEventArgs<RequestSuccessMessage>> RequestSuccessReceived

Event Type

EventHandler<MessageEventArgs<RequestSuccessMessage>>

ServerIdentificationReceived

Occurs when server identification received.

public event EventHandler<SshIdentificationEventArgs> ServerIdentificationReceived

Event Type

EventHandler<SshIdentificationEventArgs>

UserAuthenticationBannerReceived

Occurs when BannerMessage message is received from the server.

public event EventHandler<MessageEventArgs<BannerMessage>> UserAuthenticationBannerReceived

Event Type

EventHandler<MessageEventArgs<BannerMessage>>