Increase SSH Idle Timeout

To increase the SSH idle timeout, you can modify the SSH config file:

sudo nano /etc/ssh/sshd_config

Add / configure the following values:

ClientAliveInterval 120
ClientAliveCountMax 30

Definition of ClientAliveInterval (from the manpage):

Sets a timeout interval in seconds after which if no data has been received from the client, sshd(8) will send a message through the encrypted channel to request a response from the client. The default is 0, indicating that these messages will not be sent to the client. This option applies to protocol version 2 only.

Definition of ClientAliveCountMax (from the manpage):

Sets the number of client alive messages (see below) which may be sent without sshd(8) receiving any messages back from the client. If this threshold is reached while client alive messages are being sent, sshd will disconnect the client, terminating the session. It is important to note that the use of client alive messages is very different from TCPKeepAlive (below). The client alive messages are sent through the encrypted channel and therefore will not be spoofable. The TCP keepalive option enabled by TCPKeepAlive is spoofable. The client alive mechanism is valuable when the client or server depend on knowing when a connection has become inactive.

The default value is 3. If ClientAliveInterval (see below) is set to 15, and ClientAliveCountMax is left at the default, unresponsive SSH clients will be disconnected after approximately 45 seconds. This option applies to protocol version 2 only.

So, the configuration above sets the idle timeout to 60 minutes = 1 hour. After changing the configuration file, you have to restart SSH:

sudo service ssh restart