1. 程式人生 > 其它 >設定 SSH 命令列空閒保持會話

設定 SSH 命令列空閒保持會話

楔子

使用 Mac 或 Linux 原生的命令列 ssh user@ip 方式連線 Linux 閒時會自動斷開終端卡死。

為解決這個問題,查了到篇部落格翻譯下關鍵步驟記錄下來。解決方式可以分服務端設定和客戶端設定。

客戶端設定

在不修改連線的服務端,僅設定客戶端的配置,較常用。

#追加閒時超時配置,每隔120秒向服務端發一個心跳包,如果依舊超時,再減小這個值即可
echo "ServerAliveInterval 120" >> ~/.ssh/config

服務端設定

服務端設定的好處是不用為每個客戶端分別去設定閒時會話保持時間。缺點是需要重啟 sshd 服務。

新增 如下配置到 /etc/ssh/sshd_config

#向客戶端傳送心跳包間隔,以下是每120秒發一次心跳包,以保持會話存活。
ClientAliveInterval 120
#統計向客戶端傳送心跳我次數上限,也就是最多傳送720次,按此配置是 120s * 720次 = 86400s = 24小時
ClientAliveCountMax 720

儲存後重啟 sshd 服務

/etc/init.d/ssh restart

總結

當服務端與客戶端都處理閒時狀態時,如果其中一者配置了閒時會話保持,則會話不會中斷。

參考原文地址:https://www.bjornjohansen.com/ssh-timeout