• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

The Geek Diary

CONCEPTS | BASICS | HOWTO

  • OS
    • Linux
    • CentOS/RHEL
    • Solaris
    • Oracle Linux
    • Linux Services
    • VCS
  • Database
    • oracle
    • oracle 12c
    • ASM
    • mysql
    • MariaDB
    • Data Guard
  • DevOps
    • Docker
    • Shell Scripting
  • Interview Questions
  • Big Data
    • Hadoop
    • Cloudera
    • Hortonworks HDP

How to Stop SSH Session From Getting Timed Out

By admin

The Linux ssh server never disconnects ssh session from server side by default, check switch/router/firewall configuration to avoid the issue without changing the configuration of ssh servers/clients. If the ssh session is getting disconnected due to inactivity and one wants to stop this then please follow the below steps either on client or server side as described below:

Client Side Settings

To enable the keep alive system-wide (root access required), edit the configuration file /etc/ssh/ssh_config. Similarly, to set the settings for just a specific user, edit ~/.ssh/config (create the file if it doesn’t exist). Insert the following:

Host *
ServerAliveInterval 300
ServerAliveCountMax 2

These settings will make the SSH client or server send a null packet to the other side every 300 seconds (5 minutes), and give up if it doesn’t receive any response after 2 tries, at which point the connection is likely to have been discarded anyway.

From the ssh_config man page:

ServerAliveCountMax:

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

The default value is 3. If, for example, ServerAliveInterval (see below) is set to 15 and ServerAliveCountMax is left at the default, if the server becomes unresponsive, ssh will disconnect after approximately 45 seconds. This option applies to protocol version 2 only; in protocol version 1 there is no mechanism to request a response from the server to the server alive messages, so disconnection is the responsibility of the TCP stack.

ServerAliveInterval:

Sets a timeout interval in seconds after which if no data has been received from the server, ssh(1) will send a message through the encrypted channel to request a response from the server. The default is 0, indicating that these messages will not be sent to the server, or 300 if the BatchMode option is set. This option applies to protocol version 2 only. ProtocolKeepAlives and SetupTimeOut are Debian-specific compatibility aliases for this option.

Server Side Setting

If you have administrator access to the server, you can configure the ClientAliveInterval, TCPKeepAlive and ClientAliveCountMax options in the SSHd configuration file. The file’s path is /etc/ssh/sshd_config

# vi /etc/ssh/sshd_config
ClientAliveInterval 30
TCPKeepAlive yes 
ClientAliveCountMax 99999

You will need to restart the SSH server for the changes to take effect.

# service sshd restart

Filed Under: CentOS/RHEL 6, CentOS/RHEL 7, Linux

Some more articles you might also be interested in …

  1. CentOS / RHEL 7 : Configuring static IP adress using network interface configuration files
  2. /var/cache/yum Constantly Filling Files System in CentOS/RHEL
  3. “yum history” command examples to display, rollback, redo, undo yum transactions
  4. How to change the PATH variable in Linux
  5. How to increase swap space on Linux
  6. RHEL 7 – RHCSA Notes – Create and manage Access Control Lists (ACLs)
  7. CentOS / RHEL 7 : How to disable all tty consoles and enable only 1
  8. How to Setup VNC Server for New User in CentOS/RHEL 5
  9. How to find docker storage device and its size (device mapper storage driver)
  10. CentOS / RHEL : How to Disable and Blacklist Linux Kernel Module to prevent it from loading automatically

You May Also Like

Primary Sidebar

Recent Posts

  • How to Configure Automatic Package Updates on the Server in CentOS/RHEL 8
  • FATAL: Error inserting rds_rdma
  • Failed to start LSB: Bring up/down networking – On restarting network service CentOS/RHEL (DHCP client)
  • How To Add Timestamps To dmesg Kernel Boot Log in CentOS/RHEL
  • Archives
  • Contact Us
  • Copyright

© 2021 · The Geek Diary