How to Keep Alive SSH Sessions
2015-08-29 19:52
225 查看
How to Keep Alive SSH Sessions
Many NAT firewalls time out idle sessions after a certain period of time to keep their trunks clean. Sometimes the interval between session drops is 24 hours, but on many commodity firewalls, connections are killed after as little as 300 seconds. To avoid having your SSH sessions become unresponsive after e.g. 5 minutes, do the following:On Windows (PuTTY)
In your session properties, go to Connection and under Sending of null packets to keep session active, set Seconds between keepalives (0 to turn off) to e.g. 300 (5 minutes).On Linux (ssh)
To enable the keep alive system-wide (root access required), edit/etc/ssh/ssh_config; to set the settings for just your user, edit
~/.ssh/config(create the file if it doesn’t exist). Insert the following:
Host * ServerAliveInterval 300 ServerAliveCountMax 2
You can also make your OpenSSH server keep alive all connections with clients by adding the following to
/etc/ssh/sshd_config:
TCPKeepAlive yes ClientAliveInterval 300 ClientAliveCountMax 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_configman 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.
相关文章推荐
- thread.Join(); 让主线程等待自己完成
- Windows搭建python开发环境,python入门到精通[一]
- Ubuntu14搭建ML开发环境
- 一条忍着不死的鱼
- C++ 指针与引用的区别 小结
- UVa 1303 - Wall(凸包)
- CentOS:yum安装MySQL5.6并更改其默认路径
- 欢迎使用CSDN-markdown编辑器
- Delphi 的运算符列表,运算符及优先级表格 good
- Hibernae 的延迟加载
- 递归函数
- 设计模式---工厂模式(PHP)
- contiki for CC2530的IAR移植
- 面试知识总结
- 去除TabBarController阴影线
- 关于运算符重载(总结) --http://www.cnblogs.com/xyl-share-happy/archive/2012/12/06/2804401.html
- 冒泡排序Bubble Sort
- 使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件
- Android如何定制一个下拉刷新,上滑加载更多的容器
- Java Basics 【Oriented Process】