Class Session
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
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
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
CancellationTokenThe CancellationToken to observe.
Returns
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
booltrue 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
stringThe name of the message to register with the session.
UnRegisterMessage(string)
Unregister SSH message from the session.
public void UnRegisterMessage(string messageName)
Parameters
messageName
stringThe name of the message to unregister with the session.
Events
ChannelCloseReceived
Occurs when ChannelCloseMessage message received
public event EventHandler<MessageEventArgs<ChannelCloseMessage>> ChannelCloseReceived
Event Type
ChannelDataReceived
Occurs when ChannelDataMessage message received
public event EventHandler<MessageEventArgs<ChannelDataMessage>> ChannelDataReceived
Event Type
ChannelEofReceived
Occurs when ChannelEofMessage message received
public event EventHandler<MessageEventArgs<ChannelEofMessage>> ChannelEofReceived
Event Type
ChannelExtendedDataReceived
Occurs when ChannelExtendedDataMessage message received
public event EventHandler<MessageEventArgs<ChannelExtendedDataMessage>> ChannelExtendedDataReceived
Event Type
ChannelFailureReceived
Occurs when ChannelFailureMessage message received
public event EventHandler<MessageEventArgs<ChannelFailureMessage>> ChannelFailureReceived
Event Type
ChannelOpenConfirmationReceived
Occurs when ChannelOpenConfirmationMessage message received
public event EventHandler<MessageEventArgs<ChannelOpenConfirmationMessage>> ChannelOpenConfirmationReceived
Event Type
ChannelOpenFailureReceived
Occurs when ChannelOpenFailureMessage message received
public event EventHandler<MessageEventArgs<ChannelOpenFailureMessage>> ChannelOpenFailureReceived
Event Type
ChannelOpenReceived
Occurs when ChannelOpenMessage message received
public event EventHandler<MessageEventArgs<ChannelOpenMessage>> ChannelOpenReceived
Event Type
ChannelRequestReceived
Occurs when ChannelRequestMessage message received
public event EventHandler<MessageEventArgs<ChannelRequestMessage>> ChannelRequestReceived
Event Type
ChannelSuccessReceived
Occurs when ChannelSuccessMessage message received
public event EventHandler<MessageEventArgs<ChannelSuccessMessage>> ChannelSuccessReceived
Event Type
ChannelWindowAdjustReceived
Occurs when ChannelWindowAdjustMessage message received
public event EventHandler<MessageEventArgs<ChannelWindowAdjustMessage>> ChannelWindowAdjustReceived
Event Type
Disconnected
Occurs when session has been disconnected from the server.
public event EventHandler<EventArgs> Disconnected
Event Type
ErrorOccured
Occurs when an error occurred.
public event EventHandler<ExceptionEventArgs> ErrorOccured
Event Type
HostKeyReceived
Occurs when host key received.
public event EventHandler<HostKeyEventArgs> HostKeyReceived
Event Type
RequestFailureReceived
Occurs when RequestFailureMessage message received
public event EventHandler<MessageEventArgs<RequestFailureMessage>> RequestFailureReceived
Event Type
RequestSuccessReceived
Occurs when RequestSuccessMessage message received
public event EventHandler<MessageEventArgs<RequestSuccessMessage>> RequestSuccessReceived
Event Type
ServerIdentificationReceived
Occurs when server identification received.
public event EventHandler<SshIdentificationEventArgs> ServerIdentificationReceived
Event Type
UserAuthenticationBannerReceived
Occurs when BannerMessage message is received from the server.
public event EventHandler<MessageEventArgs<BannerMessage>> UserAuthenticationBannerReceived