KB Article #177597

CONFIGURATION: Ssh.maxChannels server configuration parameter usage

Question

What does the Ssh.maxChannels server configuration parameter change?


Answer

The SSH protocol sends the requests for services to a remote server over channels. A single SSH connection may contain multiple channels, all run simultaneously over that connection.


Each channel, in turn, represents the processing of a single service (command, transfer, etc). When a new process is invoked in the same connection a channel is opened for that invocation, and all input and output relevant to that process is sent through that channel. The connection is managing the packets of all of the channels that it has open.


However as stated in RFC4254 the channels are flow-controlled. This means that no data may be sent to a channel until a message is received to indicate that window space is available. In other words the channels are sharing the bandwidth of the connection.


How does this affect SecureTransport.

The parameter Ssh.maxChannels controls the number of channels that can be opened in a single connection. This might increase or decrease (depending on the value) the number of simultaneous transfers over one connection, however most of the current SSH clients do not send files simultaneously over one connection (like FileZilla or WinSCP).


If you are actually using a client that has that option you can control the number of simultaneous transfers over one connection using thе Ssh.maxChannels server configuration parameter.


A restart of the SSH service is required for the change to take effect.


Тhis is a global setting and the change will affect all transfers over SSH.