方案一:客戶端發(fā)送心跳
Linux / Unix 下: /etc/ssh/ssh_config
Windows: ~/.ssh/config
編輯 ssh 配置文件,在文件中對(duì)應(yīng)的host添加以下內(nèi)容:
# 每隔20秒户魏,向服務(wù)器發(fā)出一次心跳。若超過(guò)999次請(qǐng)求都沒(méi)有發(fā)送成功蚤告,則會(huì)主動(dòng)斷開(kāi)與服務(wù)器端的連接狞洋。
$ ServerAliveInterval 20 #表示每隔多少秒,從客戶端向服務(wù)器端發(fā)送一次心跳(alive 檢測(cè))。
$ ServerAliveCountMax 999 #表示服務(wù)端多少次心跳無(wú)響應(yīng)之后令宿,客戶端才會(huì)認(rèn)為與服務(wù)器的 SSH 連接已經(jīng)斷開(kāi),然后斷開(kāi)連接腕窥。
依賴 ssh 客戶端定時(shí)發(fā)送心跳粒没,putty、SecureCRT油昂、XShell 也是這個(gè)原理革娄。
方案二:服務(wù)器端發(fā)送心跳
在服務(wù)器端中,編輯 ssh 配置文件:
$ sudo vim /etc/ssh/sshd_config
在文件中添加以下內(nèi)容:
# 每隔60秒冕碟,服務(wù)器向客戶端發(fā)出一次心跳拦惋。
# 若客戶端超過(guò)3次請(qǐng)求未響應(yīng),則會(huì)從服務(wù)器端斷開(kāi)與客戶端的連接安寺。
# 所以厕妖,總共允許無(wú)響應(yīng)的時(shí)間是 60 * 3 = 180 秒以內(nèi)
$ ClientAliveInterval 60 # 表示每隔多少秒,從服務(wù)器端向客戶端發(fā)送一次心跳挑庶。
$ ClientAliveCountMax 3 # 表示客戶端多少次心跳無(wú)響應(yīng)之后言秸,服務(wù)端才會(huì)認(rèn)為客戶端已經(jīng)斷開(kāi)連接软能,然后斷開(kāi)連接。