解決Centos使用ssh連線自動斷開
在使用Centos7的時候,經常在一段時間沒有操作之後就自動斷掉了,然後重新連線之後就可能失去了當前操作場景,那麼如何才能保證我們即使長時間不操作也會一直保持連線狀態,往下看。
-
第一種方法也是網上到處都能搜尋到的,修改
/etc/ssh/sshd_config
檔案使用命令開啟
/etc/ssh/sshd_config
檔案:vim /etc/ssh/sshd_config
,修改兩個引數ClientAliveInterval
和ClientAliveCountMax
,這兩個引數控制了客戶端的存活檢測間隔和失敗檢測的最大次數,如果超過了這個次數就斷開客戶端的連線,預設情況下這兩個是未開啟的,將其修改為60和5,值自己定ClientAliveInterval 100 ClientAliveCountMax 15
修改完配置之後重啟sshd服務:
systemctl restart sshd
使用該方法修改之後如果還是經常自動斷開,那你就看第二種
-
第二種來自於
linvirtshell
,是我實際遇到的情況在伺服器自動斷開的時候,控制檯輸出了一個關鍵語句:
哦吼~這句話很關鍵喔,尤其是auto-logout
,在linvirtshell
上有這麼一句話:
The ssh “timed out waiting for input: auto-logout” messages is generated by ssh upon reaching a auto-logout after an inactivity time specified by the TMOUT environment variable. If this variable is not set your session will not be auto-logged out due to inactivity. If the environment variable is set, your session will be automatically closed/logged out after the amount of seconds specified by the TMOUT variable.
大致意思是Linux維護了一個TMOUT
的環境變數,該環境變數的目的是在ssh客戶端在指定時間未活動的話,就自動斷開該客戶端的連線,單位是秒
,那我們輸出一下該環境變數看看是不是這貨在搞怪。
[[email protected] ~]# echo $TMOUT
180
果然,180秒未活動就自動斷開連線,結合之前每次斷開的時間間隔,就是這貨在作怪了,那麼我們直接修改這個引數試試,設定為30分鐘不過期
export TMOUT=1800
經驗證,確實有效,那麼將其設定到/etc/profile
檔案中(如果檔案中已經有配置了,修改時間即可)
如果想關閉自動斷開,想永久不斷開的話(不推薦),就從環境變數裡面移除掉該引數。