Table of Contents

Ssh - Channel =

About

Ssh provides the following channel (communication protocols):

All of these channels are multiplexed into a single encrypted tunnel.

All terminal sessions, forwarded connections, etc., are channels. Either side may open a channel. Multiple channels are multiplexed into a single connection. Channels are identified by numbers at each end. The number referring to a channel may be different on each side. Requests to open a channel contain the sender's channel number.

When either side wishes to open a new channel, it allocates a local number for the channel. It then sends the following message to the other side, and includes the local channel number and initial window size in the message.

The 'channel type' is a name, as described in [SSH-ARCH] and [SSH-NUMBERS], with similar extension mechanisms.

Channel type                  Reference
------------                  ---------
session                       [SSH-CONNECT, Section 6.1]
x11                           [SSH-CONNECT, Section 6.3.2]
forwarded-tcpip               [SSH-CONNECT, Section 7.2]
direct-tcpip                  [SSH-CONNECT, Section 7.2]

The remote side then decides whether it can open the channel, and responds with either SSH_MSG_CHANNEL_OPEN_CONFIRMATION or SSH_MSG_CHANNEL_OPEN_FAILURE.

When a party will no longer send more data to a channel, it SHOULD send SSH_MSG_CHANNEL_EOF. Note that the channel remains open after this message, and more data may still be sent in the other direction. The channel is considered closed for a party when it has both sent and received SSH_MSG_CHANNEL_CLOSE, and the party may then reuse the channel number.