Skip to content

Instantly share code, notes, and snippets.

@codeachange
Last active October 1, 2017 16:06
Show Gist options
  • Save codeachange/be5888f003a155e558e65dc66b4be9ea to your computer and use it in GitHub Desktop.
Save codeachange/be5888f003a155e558e65dc66b4be9ea to your computer and use it in GitHub Desktop.
ssh timeout reliable

To get your configuration working, make these configuration changes on the client:

/etc/ssh/ssh_config

Host *
  ServerAliveInterval 100  

ServerAliveInterval The client will send a null packet to the server every 100 seconds to keep the connection alive

NULL packet Is sent by the server to the client. The same packet is sent by the client to the server. A TCP NULL packet does not contain any controlling flag like SYN, ACK, FIN etc. because the server does not require a reply from the client. The NULL packet is described here: https://tools.ietf.org/html/rfc6592

Then configuring the sshd part on the server.

/etc/ssh/sshd_config

ClientAliveInterval 60
TCPKeepAlive yes
ClientAliveCountMax 10000
ClientAliveInterval The server will wait 60 seconds before sending a null packet to the client to keep the connection alive

TCPKeepAlive Is there to ensure that certain firewalls don't drop idle connections.

ClientAliveCountMax Server will send alive messages to the client even though it has not received any message back from the client.

Finally restart the ssh server

service ssh restart or service sshd restart depending on what system you are on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment